From aae5c89d5f49136a83e25f1ade00ca5d84b55d5f Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Fri, 10 May 2024 09:55:37 +1000 Subject: [PATCH] wasm: add autorepeat for QKeyEvent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We weren't handling it at all, emscripten already supports it. Fixes: QTBUG-125222 Pick-to: 6.7 Change-Id: I761eed2c8c034604cd02ba436db68cec4fdeb784 Reviewed-by: Morten Johan Sørvig --- src/plugins/platforms/wasm/qwasmevent.cpp | 2 +- src/plugins/platforms/wasm/qwasmevent.h | 1 + src/plugins/platforms/wasm/qwasmwindow.cpp | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/plugins/platforms/wasm/qwasmevent.cpp b/src/plugins/platforms/wasm/qwasmevent.cpp index c1d6ce3a2ae..e418263655b 100644 --- a/src/plugins/platforms/wasm/qwasmevent.cpp +++ b/src/plugins/platforms/wasm/qwasmevent.cpp @@ -106,7 +106,7 @@ KeyEvent::KeyEvent(EventType type, emscripten::val event) : Event(type, event) const auto code = event["code"].as(); const auto webKey = event["key"].as(); deadKey = isDeadKeyEvent(webKey.c_str()); - + autoRepeat = event["repeat"].as(); modifiers = KeyboardModifier::getForEvent(event); key = webKeyToQtKey(code, webKey, deadKey, modifiers); diff --git a/src/plugins/platforms/wasm/qwasmevent.h b/src/plugins/platforms/wasm/qwasmevent.h index 6ada5393e3e..bd0fb39f115 100644 --- a/src/plugins/platforms/wasm/qwasmevent.h +++ b/src/plugins/platforms/wasm/qwasmevent.h @@ -153,6 +153,7 @@ struct KeyEvent : public Event QFlags modifiers; bool deadKey; QString text; + bool autoRepeat; }; struct MouseEvent : public Event diff --git a/src/plugins/platforms/wasm/qwasmwindow.cpp b/src/plugins/platforms/wasm/qwasmwindow.cpp index b8197c5113c..0513f46e5bb 100644 --- a/src/plugins/platforms/wasm/qwasmwindow.cpp +++ b/src/plugins/platforms/wasm/qwasmwindow.cpp @@ -502,7 +502,7 @@ bool QWasmWindow::processKey(const KeyEvent &event) const auto result = QWindowSystemInterface::handleKeyEvent( 0, event.type == EventType::KeyDown ? QEvent::KeyPress : QEvent::KeyRelease, event.key, - event.modifiers, event.text); + event.modifiers, event.text, event.autoRepeat); return clipboardResult == ProcessKeyboardResult::NativeClipboardEventAndCopiedDataNeeded ? ProceedToNativeEvent : result;