]> git.lyx.org Git - features.git/blobdiff - src/Undo.cpp
Indicate see[also] refs in label and outliner
[features.git] / src / Undo.cpp
index 670449035202e480137b3d7f77a882b0ae4d3c00..4e970df5a03cd4a394a9ef00de7798e6f4f01c1b 100644 (file)
 #include "ParagraphList.h"
 #include "Text.h"
 
+#include "mathed/InsetMath.h"
 #include "mathed/MathData.h"
+#include "mathed/MathRow.h"
 
-#include "insets/Inset.h"
 #include "insets/InsetText.h"
 
 #include "support/debug.h"
@@ -373,6 +374,9 @@ void Undo::Private::recordUndo(UndoKind kind,
        LASSERT(first_pit <= cell.lastpit(), return);
        LASSERT(last_pit <= cell.lastpit(), return);
 
+       if (buffer_.isReadonly())
+               return;
+
        doRecordUndo(kind, cell, first_pit, last_pit, cur,
                undostack_);
 
@@ -407,6 +411,9 @@ void Undo::Private::doRecordUndoBufferParams(CursorData const & cur_before,
 
 void Undo::Private::recordUndoBufferParams(CursorData const & cur)
 {
+       if (buffer_.isReadonly())
+               return;
+
        doRecordUndoBufferParams(cur, undostack_);
 
        // next time we'll try again to combine entries if possible
@@ -449,11 +456,8 @@ void Undo::Private::doUndoRedoAction(CursorData & cur, UndoElementStack & stack,
                otherstack.top().bparams = new BufferParams(buffer_.params());
                DocumentClassConstPtr olddc = buffer_.params().documentClassPtr();
                buffer_.params() = *undo.bparams;
-               // The error list is not supposed to be helpful here.
-               ErrorList el;
                cap::switchBetweenClasses(olddc, buffer_.params().documentClassPtr(),
-                       static_cast<InsetText &>(buffer_.inset()), el);
-               LATTEST(el.empty());
+                       static_cast<InsetText &>(buffer_.inset()));
        } else if (dit.inMathed()) {
                // We stored the full cell here as there is not much to be
                // gained by storing just 'a few' paragraphs (most if not
@@ -519,6 +523,9 @@ void Undo::Private::doUndoRedoAction(CursorData & cur, UndoElementStack & stack,
 
 bool Undo::Private::undoRedoAction(CursorData & cur, bool isUndoOperation)
 {
+       if (buffer_.isReadonly())
+               return false;
+
        undo_finished_ = true;
 
        UndoElementStack & stack = isUndoOperation ?  undostack_ : redostack_;