aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/EditModel.cxx
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2025-02-04 20:57:26 +1100
committerNeil <nyamatongwe@gmail.com>2025-02-04 20:57:26 +1100
commit3c7b3d58881b98806a0eb5bbd94a07c38b9fe7c5 (patch)
tree84bfcce4cd245c333cab38586f43be89e8c7259f /src/EditModel.cxx
parentc88990bc3bd3e043a426773d24d55a7527e84dcf (diff)
downloadscintilla-mirror-3c7b3d58881b98806a0eb5bbd94a07c38b9fe7c5.tar.gz
Ensure undo selection history for view is deleted when view destroyed or
history disabled.
Diffstat (limited to 'src/EditModel.cxx')
-rw-r--r--src/EditModel.cxx10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/EditModel.cxx b/src/EditModel.cxx
index 033d79bd2..a0339de35 100644
--- a/src/EditModel.cxx
+++ b/src/EditModel.cxx
@@ -121,6 +121,9 @@ EditModel::EditModel() : braces{} {
EditModel::~EditModel() {
try {
+ // Erasing the view state won't throw even though SetViewState
+ // and the resulting map::erase aren't marked noexcept.
+ pdoc->SetViewState(this, {});
// This never throws but isn't marked noexcept for compatibility
pdoc->Release();
} catch (...) {
@@ -178,3 +181,10 @@ void EditModel::EnsureModelState() {
}
}
}
+
+void EditModel::ChangeUndoSelectionHistory(Scintilla::UndoSelectionHistoryOption undoSelectionHistoryOptionNew) {
+ undoSelectionHistoryOption = undoSelectionHistoryOptionNew;
+ if (undoSelectionHistoryOption == UndoSelectionHistoryOption::Disabled) {
+ pdoc->SetViewState(this, {});
+ }
+}