wasm: don't give native focus to non-focus windows

isActive() may return true if a (transient) parent window
is active (has focus).

Compare against QGuiApplication::focusWindow() instead.

Fixes: QTBUG-129233
Pick-to: 6.8
Change-Id: I834a5814a5db161bdea2ba3524d1010e0c0e3e6e
Reviewed-by: Even Oscar Andersen <even.oscar.andersen@qt.io>
Reviewed-by: Piotr Wierciński <piotr.wiercinski@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@qt.io>
(cherry picked from commit 31762e2e704673057a292ac59977b501919f2450)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Morten Sørvig 2025-01-27 13:06:41 +01:00 committed by Qt Cherry-pick Bot
parent b50f026c55
commit 55148eb94d

View File

@ -314,7 +314,7 @@ void QWasmWindow::setVisible(bool visible)
m_compositor->requestUpdateWindow(this, QRect(QPoint(0, 0), geometry().size()), QWasmCompositor::ExposeEventDelivery);
m_decoratedWindow["style"].set("display", visible ? "block" : "none");
if (window()->isActive())
if (window() == QGuiApplication::focusWindow())
m_canvas.call<void>("focus");
if (visible)
applyWindowState();