From 673afffd5ad1a0101502cbfdaffed3ad79ca4456 Mon Sep 17 00:00:00 2001 From: thankyouverycool <66646555+thankyouverycool@users.noreply.github.com> Date: Sat, 17 Dec 2022 13:12:15 -0500 Subject: [PATCH] LibGUI: Only reset GlyphMapWidget selection on Escape and when using unmodified arrows. --- Userland/Libraries/LibGUI/GlyphMapWidget.cpp | 10 +++++++++- Userland/Libraries/LibGUI/GlyphMapWidget.h | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibGUI/GlyphMapWidget.cpp b/Userland/Libraries/LibGUI/GlyphMapWidget.cpp index 566ecbc8f6..381219bdea 100644 --- a/Userland/Libraries/LibGUI/GlyphMapWidget.cpp +++ b/Userland/Libraries/LibGUI/GlyphMapWidget.cpp @@ -263,7 +263,15 @@ void GlyphMapWidget::keydown_event(KeyEvent& event) return; } - if (!event.ctrl() && !event.shift() && event.key() != KeyCode::Key_Delete) { + if (event.key() == KeyCode::Key_Escape) { + m_selection.set_size(1); + m_selection.set_start(m_active_glyph); + if (on_escape_pressed) + on_escape_pressed(); + return; + } + + if (!event.modifiers() && event.is_arrow_key()) { m_selection.set_size(1); m_selection.set_start(m_active_glyph); } diff --git a/Userland/Libraries/LibGUI/GlyphMapWidget.h b/Userland/Libraries/LibGUI/GlyphMapWidget.h index 4dd1134765..0c2746c731 100644 --- a/Userland/Libraries/LibGUI/GlyphMapWidget.h +++ b/Userland/Libraries/LibGUI/GlyphMapWidget.h @@ -73,6 +73,7 @@ public: int rows() const { return m_rows; } int columns() const { return m_columns; } + Function on_escape_pressed; Function on_active_glyph_changed; Function on_glyph_double_clicked; Function on_context_menu_request;