wasm: remove QWasmClipboard::isPaste
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 <Mikolaj.Boc@qt.io> Reviewed-by: David Skoland <david.skoland@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
This commit is contained in:
parent
69033876c6
commit
87c3d2a3ce
@ -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<QWindowSystemInterface::SynchronousDelivery>(
|
||||
0, QEvent::KeyPress, Qt::Key_V, Qt::ControlModifier, "V");
|
||||
|
@ -42,7 +42,6 @@ public:
|
||||
bool hasClipboardApi;
|
||||
void writeToClipboardApi();
|
||||
void writeToClipboard(const QMimeData *data);
|
||||
bool isPaste;
|
||||
bool m_isListener;
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user