diff options
author | Neil <nyamatongwe@gmail.com> | 2025-02-04 20:57:26 +1100 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2025-02-04 20:57:26 +1100 |
commit | 3c7b3d58881b98806a0eb5bbd94a07c38b9fe7c5 (patch) | |
tree | 84bfcce4cd245c333cab38586f43be89e8c7259f /src/EditModel.cxx | |
parent | c88990bc3bd3e043a426773d24d55a7527e84dcf (diff) | |
download | scintilla-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.cxx | 10 |
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, {}); + } +} |