summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wasm/qwasmcompositor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmcompositor.cpp')
-rw-r--r--src/plugins/platforms/wasm/qwasmcompositor.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/plugins/platforms/wasm/qwasmcompositor.cpp b/src/plugins/platforms/wasm/qwasmcompositor.cpp
index f76f8f7166..fa83f1908b 100644
--- a/src/plugins/platforms/wasm/qwasmcompositor.cpp
+++ b/src/plugins/platforms/wasm/qwasmcompositor.cpp
@@ -136,6 +136,11 @@ void QWasmCompositor::deregisterEventHandlers()
emscripten_set_touchend_callback(canvasSelector.constData(), 0, 0, NULL);
emscripten_set_touchmove_callback(canvasSelector.constData(), 0, 0, NULL);
emscripten_set_touchcancel_callback(canvasSelector.constData(), 0, 0, NULL);
+
+ val canvas = screen()->canvas();
+ canvas.call<void>("removeEventListener",
+ std::string("drop"),
+ val::module_property("qtDrop"), val(true));
}
void QWasmCompositor::destroy()
@@ -193,6 +198,13 @@ void QWasmCompositor::initEventHandlers()
emscripten_set_touchend_callback(canvasSelector.constData(), (void *)this, 1, &touchCallback);
emscripten_set_touchmove_callback(canvasSelector.constData(), (void *)this, 1, &touchCallback);
emscripten_set_touchcancel_callback(canvasSelector.constData(), (void *)this, 1, &touchCallback);
+
+ val canvas = screen()->canvas();
+ canvas.call<void>("addEventListener",
+ std::string("drop"),
+ val::module_property("qtDrop"), val(true));
+ canvas.set("data-qtdropcontext", // ? unique
+ emscripten::val(quintptr(reinterpret_cast<void *>(screen()))));
}
void QWasmCompositor::setEnabled(bool enabled)
@@ -1145,7 +1157,6 @@ bool QWasmCompositor::processMouse(int eventType, const EmscriptenMouseEvent *mo
if (eventType == EMSCRIPTEN_EVENT_MOUSEDOWN && !accepted)
QGuiApplicationPrivate::instance()->closeAllPopups();
-
return accepted;
}