aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quicktemplates2/qquickpopup.cpp2
-rw-r--r--tests/auto/controls/data/tst_popup.qml6
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()
}