diff options
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmclipboard.cpp')
-rw-r--r-- | src/plugins/platforms/wasm/qwasmclipboard.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/plugins/platforms/wasm/qwasmclipboard.cpp b/src/plugins/platforms/wasm/qwasmclipboard.cpp index 88043ba092..d49f7b3673 100644 --- a/src/plugins/platforms/wasm/qwasmclipboard.cpp +++ b/src/plugins/platforms/wasm/qwasmclipboard.cpp @@ -284,6 +284,23 @@ void QWasmClipboard::setMimeData(QMimeData *mimeData, QClipboard::Mode mode) isPaste = false; } +QWasmClipboard::ProcessKeyboardResult +QWasmClipboard::processKeyboard(const QWasmEventTranslator::TranslatedEvent &event, + const QFlags<Qt::KeyboardModifier> &modifiers) +{ + if (event.type != QEvent::KeyPress || !modifiers.testFlag(Qt::ControlModifier)) + return ProcessKeyboardResult::Ignored; + + if (event.key != Qt::Key_C && event.key != Qt::Key_V && event.key != Qt::Key_X) + return ProcessKeyboardResult::Ignored; + + isPaste = event.key == Qt::Key_V; + + return hasClipboardApi && !isPaste + ? ProcessKeyboardResult::NativeClipboardEventAndCopiedDataNeeded + : ProcessKeyboardResult::NativeClipboardEventNeeded; +} + bool QWasmClipboard::supportsMode(QClipboard::Mode mode) const { return mode == QClipboard::Clipboard; |