// 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);
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);
cur.selection() = false;
cur.resetAnchor();
cur.fixIfBroken();
+
+ if (labelsUpdateNeeded)
+ updateLabels(*buf);
finishUndo();
-
return true;
}