From c84756efa8266715798d41353b733fb41c6ead89 Mon Sep 17 00:00:00 2001 From: AnotherTest Date: Sun, 29 Nov 2020 11:05:58 +0330 Subject: [PATCH] LibGUI: Don't start editing with (just) modifier keys when AnyKeyPressed This fixes the control key starting an edit on (and inserting a nul character into) a cell in Spreadsheet. --- Libraries/LibGUI/TableView.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Libraries/LibGUI/TableView.cpp b/Libraries/LibGUI/TableView.cpp index f65ace1925..8b143df504 100644 --- a/Libraries/LibGUI/TableView.cpp +++ b/Libraries/LibGUI/TableView.cpp @@ -177,11 +177,12 @@ void TableView::keydown_event(KeyEvent& event) if (event.is_accepted()) return; - if (is_editable() && edit_triggers() & EditTrigger::AnyKeyPressed && !event.text().is_empty()) { + auto is_delete = event.key() == Key_Delete || event.key() == Key_Backspace; + if (is_editable() && edit_triggers() & EditTrigger::AnyKeyPressed && (event.code_point() != 0 || is_delete)) { begin_editing(cursor_index()); if (m_editing_delegate) { - if (event.key() == KeyCode::Key_Delete || event.key() == KeyCode::Key_Backspace) - m_editing_delegate->set_value(String::empty()); + if (is_delete) + m_editing_delegate->set_value(event.key() == Key_Delete ? String {} : String::empty()); else m_editing_delegate->set_value(event.text()); }