Jean-Marc Lasgouttes wrote: > It would be nice to get a backtrace to see why these things are > called. It is very weird. > > Label contents should not have anything to do with LFUN_GOTO_PARAGRAPH.
I can only provide the following "manual" backtrace: insetcite.C: 1. InsetCitation::getScreenLabel -> InsetCitation::generateLabel -> getNatbibLabel -> buffer.fillWithBibKeys(bibkeys) Buffer.C (fillWithBibKeys): for (InsetIterator it = inset_iterator_begin(inset()); it; ++it) { if (it->lyxCode() == InsetBase::BIBTEX_CODE) { InsetBibtex const & inset = dynamic_cast<InsetBibtex const &>(*it); inset.fillWithBibKeys(*this, keys); Then InsetBibtex::fillWithBibKeys scans the databases. Note that lyx 1.3 had some more tests in getNatbibLabel: // Only load the bibkeys once if we're loading up the buffer, // else load them afresh each time. map<Buffer const *, bool>::iterator lit = loading_buffer.find(buffer); if (lit == loading_buffer.end()) loading_buffer[buffer] = true; bool loadkeys = !loading_buffer[buffer]; if (!loadkeys) { CachedMap::iterator kit = cached_keys.find(buffer); loadkeys = kit == cached_keys.end(); } if (loadkeys) { // build the keylist [...] In 1.4, it reads: // Only start the process off after the buffer is loaded from file. if (!buffer.fully_loaded()) return string(); typedef std::map<Buffer const *, biblio::InfoMap> CachedMap; static CachedMap cached_keys; // build the keylist [...] Maybe this is the culprit? Jürgen