summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/wasm/qtloader.js8
-rw-r--r--src/plugins/platforms/wasm/qwasmintegration.cpp12
-rw-r--r--src/plugins/platforms/wasm/qwasmintegration.h1
3 files changed, 21 insertions, 0 deletions
diff --git a/src/plugins/platforms/wasm/qtloader.js b/src/plugins/platforms/wasm/qtloader.js
index 9bacce5944..3cbb1c8aa8 100644
--- a/src/plugins/platforms/wasm/qtloader.js
+++ b/src/plugins/platforms/wasm/qtloader.js
@@ -122,6 +122,8 @@
// Add canvas at run-time. Adds a corresponding QScreen,
// removeCanvasElement
// Remove canvas at run-time. Removes the corresponding QScreen.
+// resizeCanvasElement
+// Signals to the application that a canvas has been resized.
var Module = {}
@@ -233,6 +235,7 @@ function QtLoader(config)
publicAPI.loadEmscriptenModule = loadEmscriptenModule;
publicAPI.addCanvasElement = addCanvasElement;
publicAPI.removeCanvasElement = removeCanvasElement;
+ publicAPI.resizeCanvasElement = resizeCanvasElement;
restartCount = 0;
@@ -548,6 +551,11 @@ function QtLoader(config)
console.log("Error: removeCanvasElement can only be called in the Running state");
}
+ function resizeCanvasElement(element) {
+ if (publicAPI.status == "Running")
+ Module.qtResizeCanvasElement(element);
+ }
+
setStatus("Created");
return publicAPI;
diff --git a/src/plugins/platforms/wasm/qwasmintegration.cpp b/src/plugins/platforms/wasm/qwasmintegration.cpp
index 44b4546dc6..55bb167fcc 100644
--- a/src/plugins/platforms/wasm/qwasmintegration.cpp
+++ b/src/plugins/platforms/wasm/qwasmintegration.cpp
@@ -73,11 +73,18 @@ static void removeCanvasElement(emscripten::val canvas)
QWasmIntegration::get()->removeScreen(canvasId);
}
+static void resizeCanvasElement(emscripten::val canvas)
+{
+ QString canvasId = QString::fromStdString(canvas["id"].as<std::string>());
+ QWasmIntegration::get()->resizeScreen(canvasId);
+}
+
EMSCRIPTEN_BINDINGS(qtQWasmIntegraton)
{
function("qtBrowserBeforeUnload", &browserBeforeUnload);
function("qtAddCanvasElement", &addCanvasElement);
function("qtRemoveCanvasElement", &removeCanvasElement);
+ function("qtResizeCanvasElement", &resizeCanvasElement);
}
QWasmIntegration *QWasmIntegration::s_instance;
@@ -212,4 +219,9 @@ void QWasmIntegration::removeScreen(const QString &canvasId)
QWindowSystemInterface::handleScreenRemoved(m_screens.take(canvasId));
}
+void QWasmIntegration::resizeScreen(const QString &canvasId)
+{
+ m_screens.value(canvasId)->updateQScreenAndCanvasRenderSize();
+}
+
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/wasm/qwasmintegration.h b/src/plugins/platforms/wasm/qwasmintegration.h
index 01ce6ec007..2239bdc118 100644
--- a/src/plugins/platforms/wasm/qwasmintegration.h
+++ b/src/plugins/platforms/wasm/qwasmintegration.h
@@ -77,6 +77,7 @@ public:
void addScreen(const QString &canvasId);
void removeScreen(const QString &canvasId);
+ void resizeScreen(const QString &canvasId);
private:
mutable QWasmFontDatabase *m_fontDb;