commit bfe98181169d9e697e515da974d9b6a15a06c940
Author: Jean-Marc Lasgouttes <lasgout...@lyx.org>
Date:   Sun Feb 20 19:48:13 2022 +0100

    Make undo action no-ops when the buffer is read-only
    
    Since the buffer cannot be modified, there is no point to record changes.
    Avoids marking buffer dirty after running "inset-forall".
---
 src/Undo.cpp |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/src/Undo.cpp b/src/Undo.cpp
index a870241..4e970df 100644
--- a/src/Undo.cpp
+++ b/src/Undo.cpp
@@ -374,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_);
 
@@ -408,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
@@ -517,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_;
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to