From 3de9d37c7b8f4501558d309ada718dc52533e94c Mon Sep 17 00:00:00 2001 From: Neil Date: Wed, 22 Jan 2025 21:34:54 +1100 Subject: Bug [#1224]. Remember selection in undo history. SCI_SETSELECTIONUNDOHISTORY. --- src/Editor.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/Editor.h') diff --git a/src/Editor.h b/src/Editor.h index d95f552ad..655184a31 100644 --- a/src/Editor.h +++ b/src/Editor.h @@ -178,6 +178,8 @@ constexpr XYScrollOptions operator|(XYScrollOptions a, XYScrollOptions b) noexce return static_cast(static_cast(a) | static_cast(b)); } +struct SelectionStack; + /** */ class Editor : public EditModel, public DocWatcher { @@ -367,6 +369,9 @@ protected: // ScintillaBase subclass needs access to much of Editor SelectionPosition MovePositionSoVisible(Sci::Position pos, int moveDir); Point PointMainCaret(); void SetLastXChosen(); + void RememberSelectionForUndo(int index); + void RememberSelectionOntoStack(int index); + void RememberCurrentSelectionForRedoOntoStack(); void ScrollTo(Sci::Line line, bool moveThumb=true); virtual void ScrollText(Sci::Line linesToMove); @@ -443,6 +448,7 @@ protected: // ScintillaBase subclass needs access to much of Editor virtual void Paste() = 0; void Clear(); virtual void SelectAll(); + void RestoreSelection(Sci::Position newPos, UndoRedo history); virtual void Undo(); virtual void Redo(); void DelCharBack(bool allowLineStartDeletion); @@ -477,6 +483,7 @@ protected: // ScintillaBase subclass needs access to much of Editor void NotifyDeleted(Document *document, void *userData) noexcept override; void NotifyStyleNeeded(Document *doc, void *userData, Sci::Position endStyleNeeded) override; void NotifyErrorOccurred(Document *doc, void *userData, Scintilla::Status status) override; + void NotifyGroupCompleted(Document *, void *) noexcept override; void NotifyMacroRecord(Scintilla::Message iMessage, Scintilla::uptr_t wParam, Scintilla::sptr_t lParam); void ContainerNeedsUpdate(Scintilla::Update flags) noexcept; -- cgit v1.2.3