iOS: Always call setParent during QIOSWindow construction
We rely on setParent for parenting top level windows into our desktop manager view, so we can't condition the call on having a parent window, like we do on other platforms. This was a regression from 988039729f55a5e62e32b82c6f29ff7457e91d9d. Fixes: QTBUG-125142 Change-Id: I2884d77db09cba5371ccd77eabda7ce38c0292de Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 6c36e21bec1197e933ee1fbe14bd18936544d32a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
bb51347266
commit
d43c9b0246
@ -55,7 +55,9 @@ QIOSWindow::QIOSWindow(QWindow *window, WId nativeHandle)
|
|||||||
|
|
||||||
connect(qGuiApp, &QGuiApplication::applicationStateChanged, this, &QIOSWindow::applicationStateChanged);
|
connect(qGuiApp, &QGuiApplication::applicationStateChanged, this, &QIOSWindow::applicationStateChanged);
|
||||||
|
|
||||||
if (QPlatformWindow::parent())
|
// Always set parent, even if we don't have a parent window,
|
||||||
|
// as we use setParent to reparent top levels into our desktop
|
||||||
|
// manager view.
|
||||||
setParent(QPlatformWindow::parent());
|
setParent(QPlatformWindow::parent());
|
||||||
|
|
||||||
if (!isForeignWindow()) {
|
if (!isForeignWindow()) {
|
||||||
|
@ -172,6 +172,9 @@ void tst_ForeignWindow::destroyWhenParentIsDestroyed()
|
|||||||
// Reparenting into a window will result in creating it
|
// Reparenting into a window will result in creating it
|
||||||
QVERIFY(parentWindow.handle());
|
QVERIFY(parentWindow.handle());
|
||||||
|
|
||||||
|
parentWindow.show();
|
||||||
|
QVERIFY(QTest::qWaitForWindowExposed(&parentWindow));
|
||||||
|
|
||||||
// Destroying the parent window of the foreign window results
|
// Destroying the parent window of the foreign window results
|
||||||
// in destroying the foreign window as well, as the foreign
|
// in destroying the foreign window as well, as the foreign
|
||||||
// window no longer has a parent it can be embedded in.
|
// window no longer has a parent it can be embedded in.
|
||||||
@ -184,6 +187,9 @@ void tst_ForeignWindow::destroyWhenParentIsDestroyed()
|
|||||||
foreignWindow->create();
|
foreignWindow->create();
|
||||||
QVERIFY(foreignWindow->handle());
|
QVERIFY(foreignWindow->handle());
|
||||||
QTRY_COMPARE(nativeWindow.parentWinId(), parentWindow.winId());
|
QTRY_COMPARE(nativeWindow.parentWinId(), parentWindow.winId());
|
||||||
|
|
||||||
|
parentWindow.show();
|
||||||
|
QVERIFY(QTest::qWaitForWindowExposed(&parentWindow));
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <tst_foreignwindow.moc>
|
#include <tst_foreignwindow.moc>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user