diff options
author | Lorn Potter <lorn.potter@gmail.com> | 2019-10-17 08:43:49 +1000 |
---|---|---|
committer | Lorn Potter <lorn.potter@gmail.com> | 2019-11-01 11:03:28 +1000 |
commit | 26f9cb7ce5a81eac9743d0dd183f59ceb7e73569 (patch) | |
tree | 5dc287e0496009d38c445a4463b210a89f47d514 /src | |
parent | a62a6b9b173dadb24bbf6b98e493910c8ddc410e (diff) |
wasm: take canvas offset into account
This fixes issue with dialogs when the canvas is not at 0,0 in the
browser window
Change-Id: I14f6754746e064921635d6b3af3353bf3620ac44
Fixes: QTBUG-79160
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/platforms/wasm/qwasmscreen.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/platforms/wasm/qwasmscreen.cpp b/src/plugins/platforms/wasm/qwasmscreen.cpp index e536bc0ee3..37f1ea832a 100644 --- a/src/plugins/platforms/wasm/qwasmscreen.cpp +++ b/src/plugins/platforms/wasm/qwasmscreen.cpp @@ -186,8 +186,12 @@ void QWasmScreen::updateQScreenAndCanvasRenderSize() canvas.set("width", canvasSize.width()); canvas.set("height", canvasSize.height()); + QPoint offset; + offset.setX(emscripten::val::global(canvasId.constData())["offsetTop"].as<int>()); + offset.setY(emscripten::val::global(canvasId.constData())["offsetLeft"].as<int>()); + emscripten::val rect = canvas.call<emscripten::val>("getBoundingClientRect"); - QPoint position(rect["left"].as<int>(), rect["top"].as<int>()); + QPoint position(rect["left"].as<int>() - offset.x(), rect["top"].as<int>() - offset.y()); setGeometry(QRect(position, cssSize.toSize())); m_compositor->redrawWindowContent(); |