fix bug 1926 (crash when switching document)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10446 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jean-Marc Lasgouttes 2005-09-15 13:55:45 +00:00
parent 6572d0d661
commit e164c26ad2
2 changed files with 20 additions and 2 deletions

View File

@ -386,8 +386,20 @@ void BufferView::Pimpl::setBuffer(Buffer * b)
owner_->updateWindowTitle();
// This is done after the layout combox has been populated
if (buffer_)
owner_->setLayout(cursor_.paragraph().layout()->name());
if (buffer_) {
size_t i = cursor_.depth() - 1;
// we know we'll eventually find a paragraph
while (true) {
CursorSlice const & slice = cursor_[i];
if (!slice.inset().inMathed()) {
LyXLayout_ptr const layout = slice.paragraph().layout();
owner_->setLayout(layout->name());
break;
}
BOOST_ASSERT(i>0);
--i;
}
}
if (buffer_ && lyx::graphics::Previews::status() != LyXRC::PREVIEW_OFF)
lyx::graphics::Previews::get().generateBufferPreviews(*buffer_);

View File

@ -1,3 +1,9 @@
2005-09-13 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* BufferView_pimpl.C (setBuffer): when one wants to set the layout
combox, it is necessary to search for the topmost paragraph in the
cursor stack (bug 1926)
2005-09-13 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* text2.C (cursorEnd, cursorRight): do not set boundary to true at