From 14c10e40a82328d0b0e44cf3a9e491f085295d89 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Fri, 18 Nov 2011 20:48:54 +0000 Subject: [PATCH] Fix bug #7872: Mark Buffer dirty after changing branch activation. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40211 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/Buffer.cpp | 8 ++++++-- src/insets/InsetBranch.cpp | 9 +++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/Buffer.cpp b/src/Buffer.cpp index da64676d7b..0badaae88c 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -2268,8 +2268,12 @@ void Buffer::dispatch(FuncRequest const & func, DispatchResult & dr) docstring const msg = bformat(_("Branch \"%1$s\" does not exist."), branchName); dr.setMessage(msg); - } else { - branch->setSelected(func.action() == LFUN_BRANCH_ACTIVATE); + break; + } + bool activate = func.action() == LFUN_BRANCH_ACTIVATE; + if (branch->isSelected() != activate) { + branch->setSelected(activate); + markDirty(); dr.setError(false); dr.screenUpdate(Update::Force); dr.forceBufferUpdate(); diff --git a/src/insets/InsetBranch.cpp b/src/insets/InsetBranch.cpp index 174b3e655b..ef4074889b 100644 --- a/src/insets/InsetBranch.cpp +++ b/src/insets/InsetBranch.cpp @@ -126,19 +126,20 @@ void InsetBranch::doDispatch(Cursor & cur, FuncRequest & cmd) } case LFUN_BRANCH_ACTIVATE: case LFUN_BRANCH_DEACTIVATE: { - // FIXME: I do not like this cast, but have no other idea... - Buffer const * buf = buffer().masterBuffer(); - BranchList const & branchlist = buf->params().branchlist(); - Branch * our_branch = const_cast(branchlist.find(params_.branch)); + Buffer * buf = const_cast(buffer().masterBuffer()); + BranchList & branchlist = buf->params().branchlist(); + Branch * our_branch = branchlist.find(params_.branch); if (!our_branch) { // child only? our_branch = buffer().params().branchlist().find(params_.branch); if (!our_branch) break; + buf = &buffer(); } bool const activate = (cmd.action() == LFUN_BRANCH_ACTIVATE); if (our_branch->isSelected() != activate) { our_branch->setSelected(activate); + buf->markDirty(); cur.forceBufferUpdate(); } break; -- 2.39.2