#include "Cursor.h"
#include "debug.h"
#include "BufferView.h"
-#include "LyXText.h"
+#include "Text.h"
#include "Paragraph.h"
#include "ParagraphList.h"
undo.array = new MathData(cell.cell());
} else {
// some more effort needed here as 'the whole cell' of the
- // main LyXText _is_ the whole document.
+ // main Text _is_ the whole document.
// record the relevant paragraphs
- LyXText const * text = cell.text();
+ Text const * text = cell.text();
BOOST_ASSERT(text);
ParagraphList const & plist = text->paragraphs();
ParagraphList::const_iterator first = plist.begin();
// 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);
undo.array = 0;
} else {
// Some finer machinery is needed here.
- LyXText * text = dit.text();
+ Text * text = dit.text();
BOOST_ASSERT(text);
BOOST_ASSERT(undo.pars);
ParagraphList & plist = text->paragraphs();
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;
}