From 50d1e46ea7d6de76fc8d676888d9e14475fda04f Mon Sep 17 00:00:00 2001 From: Neil Date: Fri, 7 Feb 2025 09:28:54 +1100 Subject: Add vertical scroll position into undo selection history unconditionally. --- src/EditModel.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/EditModel.h') diff --git a/src/EditModel.h b/src/EditModel.h index 1c4823b2e..dcaf99613 100644 --- a/src/EditModel.h +++ b/src/EditModel.h @@ -24,7 +24,13 @@ public: enum class UndoRedo { undo, redo }; // Selection stack is sparse so use a map -using SelectionStack = std::map; + +struct SelectionWithScroll { + std::string selection; + Sci::Line topLine = 0; +}; + +using SelectionStack = std::map; struct SelectionHistory { int indexCurrent = 0; @@ -37,9 +43,9 @@ struct ModelState : ViewState { SelectionHistory historyForRedo; void RememberSelectionForUndo(int index, const Selection &sel); void ForgetSelectionForUndo() noexcept; - void RememberSelectionOntoStack(int index); - void RememberSelectionForRedoOntoStack(int index, const Selection &sel); - std::string_view SelectionFromStack(int index, UndoRedo history) const; + void RememberSelectionOntoStack(int index, Sci::Line topLine); + void RememberSelectionForRedoOntoStack(int index, const Selection &sel, Sci::Line topLine); + SelectionWithScroll SelectionFromStack(int index, UndoRedo history) const; virtual void TruncateUndo(int index) final; }; -- cgit v1.2.3