mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-02-24 00:24:38 +00:00
LibGUI: Make undo work for TextDocument ReplaceAllTextCommand
The undo code here was just replacing the new text with the new text. Now we actually save the old text and use that instead. :^)
This commit is contained in:
committed by
Andreas Kling
parent
7164b2f758
commit
a5ff6769f5
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user