The obvious naive fix:

--- src/Undo.cpp        (Revision 18737)
+++ src/Undo.cpp        (Arbeitskopie)
@@ -164,6 +164,7 @@
        // This does the actual undo/redo.
        //lyxerr << "undo, performing: " << undo << std::endl;
+       bool labelsUpdateNeeded = false;
        DocIterator dit = undo.cell.asDocIterator(&buf->inset());
        if (undo.isFullBuffer) {
                BOOST_ASSERT(undo.pars);
@@ -209,7 +210,7 @@
                plist.insert(first, undo.pars->begin(), undo.pars->end());
                delete undo.pars;
                undo.pars = 0;
-               updateLabels(*buf);
+               labelsUpdateNeeded = true;
        }
        BOOST_ASSERT(undo.pars == 0);
        BOOST_ASSERT(undo.array == 0);
@@ -220,8 +221,10 @@
        cur.selection() = false;
        cur.resetAnchor();
        cur.fixIfBroken();
+       
+       if (labelsUpdateNeeded)
+               updateLabels(*buf);
        finishUndo();
-
        return true;
}

Attachment: PGP.sig
Description: Signierter Teil der Nachricht

Reply via email to