diff options
author | Mikolaj Boc <[email protected]> | 2022-08-23 14:24:36 +0200 |
---|---|---|
committer | Mikolaj Boc <[email protected]> | 2022-08-24 17:50:25 +0200 |
commit | 11f12521bcd9c76f0ff5c60fb8785aba33ec7ca7 (patch) | |
tree | 5cf2eb6ccad5143628146c793f84ae64e2b73261 /src/plugins/platforms/wasm/qwasmwindow.cpp | |
parent | 0acb56518d72c09650dd83ca34a7d5bb0763b06a (diff) |
Resolve window focusing problems on WASM
- Moved the modal window resolution to
QWasmWindow::requestActivateWindow so that multiple async activation
events are not issued in unpredictable patterns.
- Request activation on added windows and on stack top in case of
window removal
Pick-to: 6.4
Change-Id: I6f02cf1b7e83abb7961caf311ffc83e91c8bf810
Reviewed-by: Morten Johan Sørvig <[email protected]>
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmwindow.cpp')
-rw-r--r-- | src/plugins/platforms/wasm/qwasmwindow.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/plugins/platforms/wasm/qwasmwindow.cpp b/src/plugins/platforms/wasm/qwasmwindow.cpp index fd62c63d1ba..4e429db65fc 100644 --- a/src/plugins/platforms/wasm/qwasmwindow.cpp +++ b/src/plugins/platforms/wasm/qwasmwindow.cpp @@ -421,6 +421,12 @@ bool QWasmWindow::windowIsPopupType(Qt::WindowFlags flags) const void QWasmWindow::requestActivateWindow() { + QWindow *modalWindow; + if (QGuiApplicationPrivate::instance()->isWindowBlocked(window(), &modalWindow)) { + static_cast<QWasmWindow *>(modalWindow->handle())->requestActivateWindow(); + return; + } + if (window()->isTopLevel()) raise(); QPlatformWindow::requestActivateWindow(); |