X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferView.cpp;h=b46be350b850010964b3c6322381b7dd86cda0ba;hb=2455bc258f3b62c29ec4a41cb88070ff8518e842;hp=2f41a497a2989e0921f5f904b93f705a1ea128b8;hpb=647ac4a2219a7df07a565298057d151a2ae045a0;p=lyx.git diff --git a/src/BufferView.cpp b/src/BufferView.cpp index 2f41a497a2..b46be350b8 100644 --- a/src/BufferView.cpp +++ b/src/BufferView.cpp @@ -282,7 +282,7 @@ BufferView::BufferView(Buffer & buf) d->cursor_.setCurrentFont(); if (graphics::Previews::status() != LyXRC::PREVIEW_OFF) - thePreviews()->generateBufferPreviews(buffer_); + thePreviews().generateBufferPreviews(buffer_); } @@ -296,7 +296,7 @@ BufferView::~BufferView() LastFilePosSection::FilePos fp; fp.pit = d->cursor_.bottom().pit(); fp.pos = d->cursor_.bottom().pos(); - LyX::ref().session().lastFilePos().save(buffer_.fileName(), fp); + theSession().lastFilePos().save(buffer_.fileName(), fp); delete d; } @@ -659,7 +659,7 @@ void BufferView::saveBookmark(unsigned int idx) // acturately locate a bookmark in a 'live' lyx session. // pit and pos will be updated with bottom level pit/pos // when lyx exits. - LyX::ref().session().bookmarks().save( + theSession().bookmarks().save( buffer_.fileName(), d->cursor_.bottom().pit(), d->cursor_.bottom().pos(), @@ -1072,9 +1072,12 @@ bool BufferView::dispatch(FuncRequest const & cmd) if (!inset || !cur.result().dispatched()) cur.dispatch(cmd); + // FIXME I'm adding the last break to solve a crash, + // but that is obviously not right. if (!cur.result().dispatched()) // It did not work too; no action needed. break; + break; } case LFUN_PARAGRAPH_GOTO: { @@ -1456,15 +1459,12 @@ bool BufferView::dispatch(FuncRequest const & cmd) InsetIterator it = inset_iterator_begin(inset); InsetIterator const end = inset_iterator_end(inset); for (; it != end; ++it) { - if (!it->asInsetMath() + if (it->asInsetCollapsable() && (inset_code == NO_CODE || inset_code == it->lyxCode())) { Cursor tmpcur = cur; tmpcur.pushBackward(*it); - FuncStatus flag; - it->getStatus(tmpcur, fr, flag); - if (flag.enabled()) - it->dispatch(tmpcur, fr); + it->dispatch(tmpcur, fr); } } processUpdateFlags(Update::Force | Update::FitCursor); @@ -1483,11 +1483,13 @@ docstring const BufferView::requestSelection() { Cursor & cur = d->cursor_; + LYXERR(Debug::SELECTION, "requestSelection: cur.selection: " << cur.selection()); if (!cur.selection()) { d->xsel_cache_.set = false; return docstring(); } + LYXERR(Debug::SELECTION, "requestSelection: xsel_cache.set: " << d->xsel_cache_.set); if (!d->xsel_cache_.set || cur.top() != d->xsel_cache_.cursor || cur.anchor_.top() != d->xsel_cache_.anchor)