From 8320faf0524b9535323fccddbc03957788d6c5b4 Mon Sep 17 00:00:00 2001 From: Tim Ledbetter Date: Mon, 5 Feb 2024 18:53:54 +0000 Subject: [PATCH] Ladybird/Qt: Map Enter keypresses to the code point '\n' Previously, on systems where pressing Enter would generate "\r\n", only the '\r' character was being sent to the event handler. This change ensures consistent behavior across platforms regardless of their native line ending characters. --- Ladybird/Qt/WebContentView.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Ladybird/Qt/WebContentView.cpp b/Ladybird/Qt/WebContentView.cpp index e8e10ab147..78dd6002ad 100644 --- a/Ladybird/Qt/WebContentView.cpp +++ b/Ladybird/Qt/WebContentView.cpp @@ -451,10 +451,16 @@ void WebContentView::keyPressEvent(QKeyEvent* event) return; } + auto modifiers = get_modifiers_from_qt_keyboard_event(*event); + if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) { + // This ensures consistent behavior between systems that treat Enter as '\n' and '\r\n' + client().async_key_down(m_client_state.page_index, KeyCode::Key_Return, modifiers, '\n'); + return; + } + auto text = event->text(); auto point = text.isEmpty() ? 0u : event->text()[0].unicode(); auto keycode = get_keycode_from_qt_keyboard_event(*event); - auto modifiers = get_modifiers_from_qt_keyboard_event(*event); client().async_key_down(m_client_state.page_index, keycode, modifiers, point); }