From e164c26ad2ed95e9538a0ccd31bdf1d60d2e8060 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Thu, 15 Sep 2005 13:55:45 +0000 Subject: [PATCH] fix bug 1926 (crash when switching document) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10446 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/BufferView_pimpl.C | 16 ++++++++++++++-- src/ChangeLog | 6 ++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/BufferView_pimpl.C b/src/BufferView_pimpl.C index 01c6f11e9f..5df76a3ea3 100644 --- a/src/BufferView_pimpl.C +++ b/src/BufferView_pimpl.C @@ -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_); diff --git a/src/ChangeLog b/src/ChangeLog index 48423098c0..4846d82b1e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2005-09-13 Jean-Marc Lasgouttes + + * 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 * text2.C (cursorEnd, cursorRight): do not set boundary to true at