1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 14:37:46 +00:00

TextEditor: Clear the selection before deleting it

This patches fixes a crash of the Userland/TextEditor where it would
crash when deleting a range spanning two lines. This was because the
TextEditor would delete the range and modify the cursor position
before clearing the selection. This would trigger a status bar update
with the invalid selection.
This commit is contained in:
Paul Berg 2021-05-02 18:33:31 +02:00 committed by Andreas Kling
parent 97d0028098
commit bd68ca362b

View file

@ -1220,8 +1220,9 @@ String TextEditor::selected_text() const
void TextEditor::delete_selection() void TextEditor::delete_selection()
{ {
auto selection = normalized_selection(); auto selection = normalized_selection();
execute<RemoveTextCommand>(selected_text(), selection); auto selected = selected_text();
m_selection.clear(); m_selection.clear();
execute<RemoveTextCommand>(selected, selection);
did_update_selection(); did_update_selection();
did_change(); did_change();
set_cursor(selection.start()); set_cursor(selection.start());