From 87c3d2a3ce063c07938cf5291a0dbaf6a895491f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20S=C3=B8rvig?= Date: Tue, 20 Sep 2022 09:09:43 +0200 Subject: [PATCH] wasm: remove QWasmClipboard::isPaste MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QWasmClipboard::setMimeData() was used to move clipboard data for two different cases: 1) On programatic QClipboard::setMimeData() call from application 2) On paste event from the browser However, we are free to not call it in case 2) above, which means it can be used to handle programatic setMimeData() exclusively. Change-Id: I5bb452538027ee8eab36be6e405ae416f350a08e Reviewed-by: MikoĊ‚aj Boc Reviewed-by: David Skoland Reviewed-by: Lorn Potter --- src/plugins/platforms/wasm/qwasmclipboard.cpp | 20 +++++++++---------- src/plugins/platforms/wasm/qwasmclipboard.h | 1 - 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/plugins/platforms/wasm/qwasmclipboard.cpp b/src/plugins/platforms/wasm/qwasmclipboard.cpp index 4f4538eec6f..fe14ddccd1c 100644 --- a/src/plugins/platforms/wasm/qwasmclipboard.cpp +++ b/src/plugins/platforms/wasm/qwasmclipboard.cpp @@ -145,7 +145,6 @@ EMSCRIPTEN_BINDINGS(qtClipboardModule) { } QWasmClipboard::QWasmClipboard() : - isPaste(false), m_isListener(false) { val clipboard = val::global("navigator")["clipboard"]; @@ -171,16 +170,13 @@ QMimeData *QWasmClipboard::mimeData(QClipboard::Mode mode) void QWasmClipboard::setMimeData(QMimeData *mimeData, QClipboard::Mode mode) { - QPlatformClipboard::setMimeData(mimeData, mode); // handle setText/ setData programmatically - if (!isPaste) { - if (hasClipboardApi) { - writeToClipboardApi(); - } else if (!m_isListener) { - writeToClipboard(mimeData); - } + QPlatformClipboard::setMimeData(mimeData, mode); + if (hasClipboardApi) { + writeToClipboardApi(); + } else if (!m_isListener) { + writeToClipboard(mimeData); } - isPaste = false; } QWasmClipboard::ProcessKeyboardResult @@ -193,7 +189,7 @@ QWasmClipboard::processKeyboard(const QWasmEventTranslator::TranslatedEvent &eve 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; + const bool isPaste = event.key == Qt::Key_V; return hasClipboardApi && !isPaste ? ProcessKeyboardResult::NativeClipboardEventAndCopiedDataNeeded @@ -213,7 +209,9 @@ bool QWasmClipboard::ownsMode(QClipboard::Mode mode) const void QWasmClipboard::qWasmClipboardPaste(QMimeData *mData) { - QWasmIntegration::get()->clipboard()->setMimeData(mData, QClipboard::Clipboard); + // Persist clipboard data so that the app can read it when handling the CTRL+V + QWasmIntegration::get()->clipboard()-> + QPlatformClipboard::setMimeData(mData, QClipboard::Clipboard); QWindowSystemInterface::handleKeyEvent( 0, QEvent::KeyPress, Qt::Key_V, Qt::ControlModifier, "V"); diff --git a/src/plugins/platforms/wasm/qwasmclipboard.h b/src/plugins/platforms/wasm/qwasmclipboard.h index 70f99828981..e15dce8c574 100644 --- a/src/plugins/platforms/wasm/qwasmclipboard.h +++ b/src/plugins/platforms/wasm/qwasmclipboard.h @@ -42,7 +42,6 @@ public: bool hasClipboardApi; void writeToClipboardApi(); void writeToClipboard(const QMimeData *data); - bool isPaste; bool m_isListener; };