From 235150a1909b9d666acbdb541c665a19cc474c01 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Tue, 16 Jan 2018 11:44:37 -0600 Subject: Fix key mapping of Enter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Qt's other platform plugins differentiate Key_Enter and Key_Return. Update the webgl plugin to do the same. Also remove unused code related to key mapping. Task-number: QTBUG-65686 Change-Id: I9e65b9413828f713f56d4942531f120b7d9cc6d7 Reviewed-by: MÃ¥rten Nordheim Reviewed-by: Jesus Fernandez --- src/plugins/platforms/webgl/qwebglintegration.cpp | 7 ++++ .../platforms/webgl/qwebglwebsocketserver.cpp | 37 ---------------------- src/plugins/platforms/webgl/webqt.jsx | 2 +- 3 files changed, 8 insertions(+), 38 deletions(-) (limited to 'src') diff --git a/src/plugins/platforms/webgl/qwebglintegration.cpp b/src/plugins/platforms/webgl/qwebglintegration.cpp index 8c17190..4305253 100644 --- a/src/plugins/platforms/webgl/qwebglintegration.cpp +++ b/src/plugins/platforms/webgl/qwebglintegration.cpp @@ -628,6 +628,13 @@ void QWebGLIntegrationPrivate::handleKeyboard(const ClientData &clientData, if (specialKey != keyMap.end()) { key = *specialKey; string.clear(); + + // special case: match Qt's behavior on other platforms and differentiate: + // * "Enter": Qt::Key_Return + // * "NumpadEnter": Qt::Key_Enter + // TODO: consider whether "code" could be used rather than "keyName" above + if (key == Qt::Key_Enter && object.value("code").toString() == QStringLiteral("Enter")) + key = Qt::Key_Return; } const auto window = clientData.platformWindows.last()->window(); diff --git a/src/plugins/platforms/webgl/qwebglwebsocketserver.cpp b/src/plugins/platforms/webgl/qwebglwebsocketserver.cpp index da8867f..959287d 100644 --- a/src/plugins/platforms/webgl/qwebglwebsocketserver.cpp +++ b/src/plugins/platforms/webgl/qwebglwebsocketserver.cpp @@ -55,43 +55,6 @@ QT_BEGIN_NAMESPACE static Q_LOGGING_CATEGORY(lc, "qt.qpa.webgl.websocketserver") -const QHash keyMap { - { "Alt", Qt::Key_Alt }, - { "ArrowDown", Qt::Key_Down }, - { "ArrowLeft", Qt::Key_Left }, - { "ArrowRight", Qt::Key_Right }, - { "ArrowUp", Qt::Key_Up }, - { "Backspace", Qt::Key_Backspace }, - { "Control", Qt::Key_Control }, - { "Delete", Qt::Key_Delete }, - { "End", Qt::Key_End }, - { "Enter", Qt::Key_Enter }, - { "F1", Qt::Key_F1 }, - { "F2", Qt::Key_F2 }, - { "F3", Qt::Key_F3 }, - { "F4", Qt::Key_F4 }, - { "F5", Qt::Key_F5 }, - { "F6", Qt::Key_F6 }, - { "F7", Qt::Key_F7 }, - { "F8", Qt::Key_F8 }, - { "F9", Qt::Key_F9 }, - { "F10", Qt::Key_F10 }, - { "F11", Qt::Key_F11 }, - { "F12", Qt::Key_F12 }, - { "Escape", Qt::Key_Escape }, - { "Home", Qt::Key_Home }, - { "Insert", Qt::Key_Insert }, - { "Meta", Qt::Key_Meta }, - { "PageDown", Qt::Key_PageDown }, - { "PageUp", Qt::Key_PageUp }, - { "Shift", Qt::Key_Shift }, - { "Space", Qt::Key_Space }, - { "AltGraph", Qt::Key_AltGr }, - { "Tab", Qt::Key_Tab }, - { "Unidentified", Qt::Key_F }, - { "OS", Qt::Key_Super_L } -}; - inline QWebGLIntegration *webGLIntegration() { #ifdef QT_DEBUG diff --git a/src/plugins/platforms/webgl/webqt.jsx b/src/plugins/platforms/webgl/webqt.jsx index ec9c084..e3a2f29 100644 --- a/src/plugins/platforms/webgl/webqt.jsx +++ b/src/plugins/platforms/webgl/webqt.jsx @@ -1172,7 +1172,7 @@ window.onload = function () { "metaKey" : event.metaKey, "string" : String.fromCharCode(event.which || event.keyCode), - "keyCode" : event.keyCode, "charCode" : event.charCode, + "keyCode" : event.keyCode, "charCode" : event.charCode, "code" : event.code, "time" : new Date().getTime(), }; sendObject(object); -- cgit v1.2.3