diff options
-rw-r--r-- | Userland/Libraries/LibGUI/TextDocument.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Userland/Libraries/LibGUI/TextDocument.cpp b/Userland/Libraries/LibGUI/TextDocument.cpp index 2d8e15cd40..40a504a162 100644 --- a/Userland/Libraries/LibGUI/TextDocument.cpp +++ b/Userland/Libraries/LibGUI/TextDocument.cpp @@ -764,16 +764,22 @@ bool InsertTextCommand::merge_with(GUI::Command const& other) { if (!is<InsertTextCommand>(other)) return false; - auto& typed_other = static_cast<InsertTextCommand const&>(other); + + auto const& typed_other = static_cast<InsertTextCommand const&>(other); + if (typed_other.m_text.is_whitespace() && !m_text.is_whitespace()) + return false; // Skip if other is whitespace while this is not + if (m_range.end() != typed_other.m_range.start()) return false; if (m_range.start().line() != m_range.end().line()) return false; + StringBuilder builder(m_text.length() + typed_other.m_text.length()); builder.append(m_text); builder.append(typed_other.m_text); m_text = builder.to_string(); m_range.set_end(typed_other.m_range.end()); + return true; } |