summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibGUI
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Libraries/LibGUI')
-rw-r--r--Userland/Libraries/LibGUI/TextDocument.cpp7
-rw-r--r--Userland/Libraries/LibGUI/TextDocument.h7
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;
};