From 68884eefc625abc433969b825160b76a26d2390f Mon Sep 17 00:00:00 2001 From: Ben Wiederhake Date: Tue, 12 Oct 2021 19:49:33 +0200 Subject: [PATCH] LibGUI: Make Ctrl-Shift-Home/-End work again Previously, the initial call to update_selection() was missing, so if no text was already selected, then Ctrl-Shift-End would only move the cursor to the document end, but not select any text. --- Userland/Libraries/LibGUI/EditingEngine.cpp | 28 ++++++++------------- 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/Userland/Libraries/LibGUI/EditingEngine.cpp b/Userland/Libraries/LibGUI/EditingEngine.cpp index 051d6e5b6c9..b43721dca2f 100644 --- a/Userland/Libraries/LibGUI/EditingEngine.cpp +++ b/Userland/Libraries/LibGUI/EditingEngine.cpp @@ -120,37 +120,29 @@ bool EditingEngine::on_key(const KeyEvent& event) } if (event.key() == KeyCode::Key_Home) { + m_editor->update_selection(event.shift()); if (event.ctrl()) { move_to_first_line(); - if (event.shift() && m_editor->selection().start().is_valid()) { - m_editor->selection().set_end(m_editor->cursor()); - m_editor->did_update_selection(); - } } else { - m_editor->update_selection(event.shift()); move_to_line_beginning(); - if (event.shift() && m_editor->selection().start().is_valid()) { - m_editor->selection().set_end(m_editor->cursor()); - m_editor->did_update_selection(); - } + } + if (event.shift() && m_editor->selection().start().is_valid()) { + m_editor->selection().set_end(m_editor->cursor()); + m_editor->did_update_selection(); } return true; } if (event.key() == KeyCode::Key_End) { + m_editor->update_selection(event.shift()); if (event.ctrl()) { move_to_last_line(); - if (event.shift() && m_editor->selection().start().is_valid()) { - m_editor->selection().set_end(m_editor->cursor()); - m_editor->did_update_selection(); - } } else { - m_editor->update_selection(event.shift()); move_to_line_end(); - if (event.shift() && m_editor->selection().start().is_valid()) { - m_editor->selection().set_end(m_editor->cursor()); - m_editor->did_update_selection(); - } + } + if (event.shift() && m_editor->selection().start().is_valid()) { + m_editor->selection().set_end(m_editor->cursor()); + m_editor->did_update_selection(); } return true; }