diff options
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Libraries/LibGUI/TextDocument.cpp | 7 | ||||
-rw-r--r-- | Userland/Libraries/LibGUI/TextDocument.h | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/Userland/Libraries/LibGUI/TextDocument.cpp b/Userland/Libraries/LibGUI/TextDocument.cpp index e238660af7..75df12e256 100644 --- a/Userland/Libraries/LibGUI/TextDocument.cpp +++ b/Userland/Libraries/LibGUI/TextDocument.cpp @@ -970,7 +970,8 @@ DeprecatedString InsertLineCommand::action_text() const ReplaceAllTextCommand::ReplaceAllTextCommand(GUI::TextDocument& document, DeprecatedString const& text, GUI::TextRange const& range, DeprecatedString const& action_text) : TextDocumentUndoCommand(document) - , m_text(text) + , m_original_text(document.text()) + , m_new_text(text) , m_range(range) , m_action_text(action_text) { @@ -980,7 +981,7 @@ void ReplaceAllTextCommand::redo() { m_document.remove(m_range); m_document.set_all_cursors(m_range.start()); - auto new_cursor = m_document.insert_at(m_range.start(), m_text, m_client); + auto new_cursor = m_document.insert_at(m_range.start(), m_new_text, m_client); m_range.set_end(new_cursor); m_document.set_all_cursors(new_cursor); } @@ -989,7 +990,7 @@ void ReplaceAllTextCommand::undo() { m_document.remove(m_range); m_document.set_all_cursors(m_range.start()); - auto new_cursor = m_document.insert_at(m_range.start(), m_text); + auto new_cursor = m_document.insert_at(m_range.start(), m_original_text, m_client); m_range.set_end(new_cursor); m_document.set_all_cursors(new_cursor); } diff --git a/Userland/Libraries/LibGUI/TextDocument.h b/Userland/Libraries/LibGUI/TextDocument.h index 912354f04d..3bae9594fa 100644 --- a/Userland/Libraries/LibGUI/TextDocument.h +++ b/Userland/Libraries/LibGUI/TextDocument.h @@ -270,17 +270,18 @@ private: class ReplaceAllTextCommand final : public GUI::TextDocumentUndoCommand { public: - ReplaceAllTextCommand(GUI::TextDocument& document, DeprecatedString const& text, GUI::TextRange const& range, DeprecatedString const& action_text); + ReplaceAllTextCommand(GUI::TextDocument& document, DeprecatedString const& new_text, GUI::TextRange const& range, DeprecatedString const& action_text); virtual ~ReplaceAllTextCommand() = default; void redo() override; void undo() override; bool merge_with(GUI::Command const&) override; DeprecatedString action_text() const override; - DeprecatedString const& text() const { return m_text; } + DeprecatedString const& text() const { return m_new_text; } TextRange const& range() const { return m_range; } private: - DeprecatedString m_text; + DeprecatedString m_original_text; + DeprecatedString m_new_text; GUI::TextRange m_range; DeprecatedString m_action_text; }; |