diff --git a/Userland/Libraries/LibGUI/TextDocument.cpp b/Userland/Libraries/LibGUI/TextDocument.cpp index c58f667708..5e933beb5e 100644 --- a/Userland/Libraries/LibGUI/TextDocument.cpp +++ b/Userland/Libraries/LibGUI/TextDocument.cpp @@ -270,6 +270,16 @@ void TextDocument::insert_line(size_t line_index, NonnullOwnPtr TextDocument::take_line(size_t line_index) +{ + auto line = lines().take(line_index); + if (m_client_notifications_enabled) { + for (auto* client : m_clients) + client->document_did_remove_line(line_index); + } + return line; +} + void TextDocument::remove_line(size_t line_index) { lines().remove((int)line_index); diff --git a/Userland/Libraries/LibGUI/TextDocument.h b/Userland/Libraries/LibGUI/TextDocument.h index 371c20176e..f2c661a72b 100644 --- a/Userland/Libraries/LibGUI/TextDocument.h +++ b/Userland/Libraries/LibGUI/TextDocument.h @@ -80,6 +80,7 @@ public: TextDocumentSpan const* span_at(TextPosition const&) const; void append_line(NonnullOwnPtr); + NonnullOwnPtr take_line(size_t line_index); void remove_line(size_t line_index); void remove_all_lines(); void insert_line(size_t line_index, NonnullOwnPtr);