diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-11-17 15:17:15 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-11-17 16:36:41 +0000 |
commit | 1c987818fa2ca1c5e76c54d52f2fe381d398882f (patch) | |
tree | c9bed736346efbb8991e3f5fd0b3512e54784df6 /src/templates/qquickoverlay.cpp | |
parent | 8f218f5d07fdab9e64518157e21c751fbf90a87e (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.cpp | 9 |
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); } } |