diff options
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_popup.qml | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index 2af90d24..c155716c 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -1415,6 +1415,8 @@ void QQuickPopup::setParentItem(QQuickItem *parent) p->resolveFont(); if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(parent->window())) p->updateLocale(window->locale(), false); // explicit=false + } else { + close(); } d->setWindow(parent ? parent->window() : nullptr); emit parentChanged(); diff --git a/tests/auto/controls/data/tst_popup.qml b/tests/auto/controls/data/tst_popup.qml index ecdd1bf2..72cd6999 100644 --- a/tests/auto/controls/data/tst_popup.qml +++ b/tests/auto/controls/data/tst_popup.qml @@ -952,13 +952,17 @@ TestCase { control.destroy() } - // QTBUG-51989 function test_visible() { var control = popupTemplate.createObject(testCase, {visible: true}) verify(control) + // QTBUG-51989 tryCompare(control, "visible", true) + // QTBUG-55347 + control.parent = null + verify(!control.visible) + control.destroy() } |