diff options
author | Lorn Potter <lorn.potter@gmail.com> | 2022-06-16 13:57:46 +1000 |
---|---|---|
committer | Lorn Potter <lorn.potter@gmail.com> | 2022-06-18 05:50:25 +1000 |
commit | 87c2a401dabacddb94b61595e2873627c222c60a (patch) | |
tree | facc1590fb3d9b5d77f7747f9fb503dcb8a35791 /src/plugins/platforms/wasm/qwasmeventtranslator.cpp | |
parent | 81b5395aef3bce878574fc26e4e75a4498f1c948 (diff) |
wasm: fix unicode input
also remove duplicated function call to get Qt key for event
Pick-to: 6.3 6.4
Fixes: QTBUG-78826
Change-Id: Ibaf0dd3eb428b65280ed1f840a4849b44f2868e0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmeventtranslator.cpp')
-rw-r--r-- | src/plugins/platforms/wasm/qwasmeventtranslator.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/plugins/platforms/wasm/qwasmeventtranslator.cpp b/src/plugins/platforms/wasm/qwasmeventtranslator.cpp index 065688f1d2..778e85d675 100644 --- a/src/plugins/platforms/wasm/qwasmeventtranslator.cpp +++ b/src/plugins/platforms/wasm/qwasmeventtranslator.cpp @@ -18,6 +18,7 @@ #include <private/qmakearray_p.h> #include <QtCore/qnamespace.h> #include <QCursor> +#include <QtCore/private/qstringiterator_p.h> #include <emscripten/bind.h> @@ -229,9 +230,9 @@ Qt::Key QWasmEventTranslator::translateEmscriptKey(const EmscriptenKeyboardEvent if (qtKey == Qt::Key_unknown) { // cast to unicode key - QString str = QString::fromUtf8(emscriptKey->key); - ushort c = str.unicode()->toUpper().unicode(); // uppercase - qtKey = static_cast<Qt::Key>(c); + QString str = QString::fromUtf8(emscriptKey->key).toUpper(); + QStringIterator i(str); + qtKey = static_cast<Qt::Key>(i.next(0)); } return qtKey; @@ -364,11 +365,9 @@ QCursor QWasmEventTranslator::cursorForMode(QWasmCompositor::ResizeMode m) return Qt::ArrowCursor; } -QString QWasmEventTranslator::getKeyText(const EmscriptenKeyboardEvent *keyEvent) +QString QWasmEventTranslator::getKeyText(const EmscriptenKeyboardEvent *keyEvent, Qt::Key qtKey) { QString keyText; - Qt::Key qtKey = translateEmscriptKey(keyEvent); - //Qt::KeyboardModifiers modifiers = translateKeyboardEventModifier(keyEvent); if (m_emDeadKey != Qt::Key_unknown) { Qt::Key transformedKey = translateDeadKey(m_emDeadKey, qtKey); @@ -394,7 +393,8 @@ QString QWasmEventTranslator::getKeyText(const EmscriptenKeyboardEvent *keyEvent } } } - + if (keyText.isEmpty()) + keyText = QString::fromUtf8(keyEvent->key); return keyText; } |