Log:
* lyxfunc.C:
- LyXFunc::dispatch(): put some save guards before using
BufferView::cursor() and sendDispatchMessage().
* BufferView_pimpl.C
- BufferView::Pimpl::setBuffer(): return before if exiting.
* WorkArea.C:
- WorkArea::redraw(): update the toolbar when greying out.
* LyXView.C:
- LyXView::setBuffer(): sanitization
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14815
a592a061-630c-0410-9148-
cb99ea01b6c8
boost::tie(cursor_.pit(), cursor_.pos()) );
}
+ // If we're quitting lyx, don't bother updating stuff
+ if (quitting) {
+ buffer_ = 0;
+ return;
+ }
+
// If we are closing current buffer, switch to the first in
// buffer list.
if (!b) {
anchor_ref_ = 0;
offset_ref_ = 0;
- // If we're quitting lyx, don't bother updating stuff
- if (quitting)
- return;
-
if (buffer_) {
lyxerr[Debug::INFO] << BOOST_CURRENT_FUNCTION
<< "Buffer addr: " << buffer_ << endl;
work_area_->bufferView().setBuffer(b);
- if (work_area_->bufferView().buffer())
- {
+ if (work_area_->bufferView().buffer()) {
// Buffer-dependent dialogs should be updated or
// hidden. This should go here because some dialogs (eg ToC)
// require bv_->text.
getDialogs().updateBufferDependent(true);
+ connectBuffer(*work_area_->bufferView().buffer());
+ setLayout(work_area_->bufferView().firstLayout());
}
updateMenubar();
updateToolbars();
updateLayoutChoice();
updateWindowTitle();
- if (b) {
- connectBuffer(*b);
- setLayout(work_area_->bufferView().firstLayout());
- }
redrawWorkArea();
}
if (!buffer_view_->buffer()) {
greyOut();
+ updateScrollbar();
return;
}
&& !lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer)
&& !lyxaction.funcHasFlag(cmd.action, LyXAction::ReadOnly))
view()->buffer()->markDirty();
- }
- if (view()->cursor().inTexted()) {
- view()->owner()->updateLayoutChoice();
+ if (view()->cursor().inTexted()) {
+ view()->owner()->updateLayoutChoice();
+ }
}
}
- sendDispatchMessage(_(getMessage()), cmd);
+ if (!quitting)
+ sendDispatchMessage(_(getMessage()), cmd);
}