summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wasm/qwasmcursor.cpp
diff options
context:
space:
mode:
authorAlexandra Cherdantseva <neluhus.vagus@gmail.com>2019-12-30 14:40:03 +0300
committerAlexandra Cherdantseva <neluhus.vagus@gmail.com>2020-01-13 11:07:21 +0300
commit18e06c37e10943f4b4f6d57b7044b9bce3a23202 (patch)
tree6d648b6b185025e1bee930e2cd0f3de4a74b85c8 /src/plugins/platforms/wasm/qwasmcursor.cpp
parent3d1e257770e8c79c7cd9a08f9caf1bd8395cb10c (diff)
wasm: do not get canvas as property of js global object
You cannot be sure that property with specified key in a global object is really a canvas. Should use `document.getElementById`. Change-Id: Ife55adaad5517aed64122b0c9bff32489cf19a2f Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmcursor.cpp')
-rw-r--r--src/plugins/platforms/wasm/qwasmcursor.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/plugins/platforms/wasm/qwasmcursor.cpp b/src/plugins/platforms/wasm/qwasmcursor.cpp
index 28ec3b58dd..c04fa6441a 100644
--- a/src/plugins/platforms/wasm/qwasmcursor.cpp
+++ b/src/plugins/platforms/wasm/qwasmcursor.cpp
@@ -36,6 +36,8 @@
#include <emscripten/emscripten.h>
#include <emscripten/bind.h>
+using namespace emscripten;
+
void QWasmCursor::changeCursor(QCursor *windowCursor, QWindow *window)
{
if (!windowCursor || !window)
@@ -54,8 +56,10 @@ void QWasmCursor::changeCursor(QCursor *windowCursor, QWindow *window)
htmlCursorName = "auto";
// Set cursor on the canvas
- QString canvasId = QWasmScreen::get(screen)->canvasId();
- emscripten::val canvasStyle = emscripten::val::global(canvasId.toUtf8().constData())["style"];
+ QByteArray canvasId = QWasmScreen::get(screen)->canvasId().toUtf8();
+ val document = val::global("document");
+ val canvas = document.call<val>("getElementById", val(canvasId.constData()));
+ val canvasStyle = canvas["style"];
canvasStyle.set("cursor", emscripten::val(htmlCursorName.constData()));
}