]> git.lyx.org Git - features.git/commitdiff
Fix bug #7872: Mark Buffer dirty after changing branch activation.
authorRichard Heck <rgheck@comcast.net>
Fri, 18 Nov 2011 20:48:54 +0000 (20:48 +0000)
committerRichard Heck <rgheck@comcast.net>
Fri, 18 Nov 2011 20:48:54 +0000 (20:48 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40211 a592a061-630c-0410-9148-cb99ea01b6c8

src/Buffer.cpp
src/insets/InsetBranch.cpp

index da64676d7bd0a47d7776533d48a399d90d4ceab2..0badaae88cc076e72d4a67cde71c5fbdb3c5923d 100644 (file)
@@ -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();
index 174b3e655bc6c9274f41a0e416c2c83ee611faae..ef4074889b962e8cfa7c9b714155967689e81754 100644 (file)
@@ -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<Branch *>(branchlist.find(params_.branch));
+               Buffer * buf = const_cast<Buffer *>(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;