aboutsummaryrefslogtreecommitdiffstats
path: root/src/templates/qquickoverlay.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2015-11-17 15:17:15 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2015-11-17 16:36:41 +0000
commit1c987818fa2ca1c5e76c54d52f2fe381d398882f (patch)
treec9bed736346efbb8991e3f5fd0b3512e54784df6 /src/templates/qquickoverlay.cpp
parent8f218f5d07fdab9e64518157e21c751fbf90a87e (diff)
Keep the overlay visible when there are any children
Change-Id: I1446e88d7102ebae0e9933710e8e67d8ce925c5b Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'src/templates/qquickoverlay.cpp')
-rw-r--r--src/templates/qquickoverlay.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/templates/qquickoverlay.cpp b/src/templates/qquickoverlay.cpp
index d786f3c7..4a00387a 100644
--- a/src/templates/qquickoverlay.cpp
+++ b/src/templates/qquickoverlay.cpp
@@ -55,8 +55,10 @@ void QQuickOverlay::itemChange(ItemChange change, const ItemChangeData &data)
QQuickItem *panelItem = const_cast<QQuickItem *>(data.item);
QQuickPanel *panel = Q_NULLPTR;
- if (change == ItemChildAddedChange || change == ItemChildRemovedChange)
+ if (change == ItemChildAddedChange || change == ItemChildRemovedChange) {
panel = qobject_cast<QQuickPanel *>(panelItem->parent());
+ setVisible(!childItems().isEmpty());
+ }
if (!panel)
return;
@@ -73,9 +75,6 @@ void QQuickOverlay::itemChange(ItemChange change, const ItemChangeData &data)
connect(this, &QQuickOverlay::pressed, panel, &QQuickPanel::pressedOutside);
connect(this, &QQuickOverlay::released, panel, &QQuickPanel::releasedOutside);
-
- if (!isVisible())
- setVisible(true);
} else if (change == ItemChildRemovedChange) {
Q_ASSERT(panel == m_panels.value(panelItem));
@@ -85,8 +84,6 @@ void QQuickOverlay::itemChange(ItemChange change, const ItemChangeData &data)
if (panel->isModal())
--m_modalPanels;
m_panels.remove(panelItem);
- if (m_panels.isEmpty())
- setVisible(false);
}
}