From 750c86b6336b0107b81c4b460cf855ef4257c47a Mon Sep 17 00:00:00 2001 From: Marijn Haverbeke <marijn@haverbeke.nl> Date: Tue, 30 Jan 2018 09:26:02 +0100 Subject: [PATCH] Prevent selection undo from modifying read-only documents Closes #5217 --- src/model/changes.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/model/changes.js b/src/model/changes.js index b00e29b13..f006ceadb 100644 --- a/src/model/changes.js +++ b/src/model/changes.js @@ -85,7 +85,8 @@ function makeChangeInner(doc, change) { // Revert a change stored in a document's history. export function makeChangeFromHistory(doc, type, allowSelectionOnly) { - if (doc.cm && doc.cm.state.suppressEdits && !allowSelectionOnly) return + let suppress = doc.cm && doc.cm.state.suppressEdits + if (suppress && !allowSelectionOnly) return let hist = doc.history, event, selAfter = doc.sel let source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done @@ -110,8 +111,10 @@ export function makeChangeFromHistory(doc, type, allowSelectionOnly) { return } selAfter = event - } - else break + } else if (suppress) { + source.push(event); + return + } else break } // Build up a reverse change object to add to the opposite history -- GitLab