diff options
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmeventtranslator.cpp')
-rw-r--r-- | src/plugins/platforms/wasm/qwasmeventtranslator.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/plugins/platforms/wasm/qwasmeventtranslator.cpp b/src/plugins/platforms/wasm/qwasmeventtranslator.cpp index ad94ba9c77..d99c202c48 100644 --- a/src/plugins/platforms/wasm/qwasmeventtranslator.cpp +++ b/src/plugins/platforms/wasm/qwasmeventtranslator.cpp @@ -32,6 +32,7 @@ #include "qwasmcompositor.h" #include "qwasmintegration.h" #include "qwasmclipboard.h" +#include "qwasmstring.h" #include <QtGui/qevent.h> #include <qpa/qwindowsysteminterface.h> @@ -47,9 +48,10 @@ #include <iostream> -QT_BEGIN_NAMESPACE using namespace emscripten; +QT_BEGIN_NAMESPACE + typedef struct emkb2qt { const char *em; unsigned int qt; @@ -353,10 +355,12 @@ void QWasmEventTranslator::initEventHandlers() g_useNaturalScrolling = false; // make this !default on macOS if (emscripten::val::global("window")["safari"].isUndefined()) { - - emscripten::val::global(canvasId).call<void>("addEventListener", - std::string("wheel"), - val::module_property("qtMouseWheelEvent")); + val document = val::global("document"); + val jsCanvasId = QWasmString::fromQString(screen()->canvasId()); + val canvas = document.call<val>("getElementById", jsCanvasId); + canvas.call<void>("addEventListener", + val("wheel"), + val::module_property("qtMouseWheelEvent")); } } @@ -544,7 +548,7 @@ void resizeWindow(QWindow *window, QWasmWindow::ResizeMode mode, void QWasmEventTranslator::processMouse(int eventType, const EmscriptenMouseEvent *mouseEvent) { - auto timestamp = mouseEvent->timestamp; + auto timestamp = emscripten_date_now(); QPoint targetPoint(mouseEvent->targetX, mouseEvent->targetY); QPoint globalPoint = screen()->geometry().topLeft() + targetPoint; @@ -670,7 +674,7 @@ int QWasmEventTranslator::wheel_cb(int eventType, const EmscriptenWheelEvent *wh QWasmEventTranslator *translator = (QWasmEventTranslator*)userData; Qt::KeyboardModifiers modifiers = translator->translateMouseEventModifier(&mouseEvent); - auto timestamp = mouseEvent.timestamp; + auto timestamp = emscripten_date_now(); QPoint targetPoint(mouseEvent.targetX, mouseEvent.targetY); QPoint globalPoint = eventTranslator->screen()->geometry().topLeft() + targetPoint; |