diff options
author | Lorn Potter <lorn.potter@gmail.com> | 2019-02-22 06:50:58 +1000 |
---|---|---|
committer | Lorn Potter <lorn.potter@gmail.com> | 2019-02-27 23:37:43 +0000 |
commit | 15adc79bbcaa909f43c2da3c61306cc2138567fa (patch) | |
tree | 77b647021e5087aeab364acaace79451d46d86e4 /src/plugins/platforms | |
parent | f6ce77f3e4dbc67531db7eeaf271c5416b4a4934 (diff) |
wasm: fix clipboard use
Change 5242126a inadvertantly removed clipboard functionality
Change-Id: Ie15e08470dd51d1c166063bbd443fd04416b2786
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/wasm/qwasmeventtranslator.cpp | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/plugins/platforms/wasm/qwasmeventtranslator.cpp b/src/plugins/platforms/wasm/qwasmeventtranslator.cpp index 334f183703..3fc8f600a1 100644 --- a/src/plugins/platforms/wasm/qwasmeventtranslator.cpp +++ b/src/plugins/platforms/wasm/qwasmeventtranslator.cpp @@ -831,16 +831,30 @@ bool QWasmEventTranslator::processKeyboard(int eventType, const EmscriptenKeyboa if (keyType == QEvent::None) return 0; + QFlags<Qt::KeyboardModifier> mods = translateKeyboardEventModifier(keyEvent); bool accepted = false; - if (keyText.isEmpty()) - keyText = QString(keyEvent->key); - if (keyText.size() > 1) - keyText.clear(); - accepted = QWindowSystemInterface::handleKeyEvent<QWindowSystemInterface::SynchronousDelivery>( - 0, keyType, qtKey, modifiers, keyText); + if (keyType == QEvent::KeyPress && + mods.testFlag(Qt::ControlModifier) + && qtKey == Qt::Key_V) { + QWasmIntegration::get()->getWasmClipboard()->readTextFromClipboard(); + } else { + if (keyText.isEmpty()) + keyText = QString(keyEvent->key); + if (keyText.size() > 1) + keyText.clear(); + accepted = QWindowSystemInterface::handleKeyEvent<QWindowSystemInterface::SynchronousDelivery>( + 0, keyType, qtKey, modifiers, keyText); + } + if (keyType == QEvent::KeyPress && + mods.testFlag(Qt::ControlModifier) + && qtKey == Qt::Key_C) { + QWasmIntegration::get()->getWasmClipboard()->writeTextToClipboard(); + } + QWasmEventDispatcher::maintainTimers(); - return accepted ? 1 : 0; + + return accepted; } QT_END_NAMESPACE |