summaryrefslogtreecommitdiff
path: root/src/controls/qquickmenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/controls/qquickmenu.cpp')
-rw-r--r--src/controls/qquickmenu.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/controls/qquickmenu.cpp b/src/controls/qquickmenu.cpp
index fec24189..84f7b1aa 100644
--- a/src/controls/qquickmenu.cpp
+++ b/src/controls/qquickmenu.cpp
@@ -266,7 +266,8 @@ QQuickMenu::QQuickMenu(QObject *parent)
m_containersCount(0),
m_xOffset(0),
m_yOffset(0),
- m_triggerCount(0)
+ m_triggerCount(0),
+ m_proxy(false)
{
connect(this, SIGNAL(__textChanged()), this, SIGNAL(titleChanged()));
@@ -593,6 +594,9 @@ void QQuickMenu::__closeAndDestroy()
void QQuickMenu::__dismissAndDestroy()
{
+ if (m_platformMenu)
+ return;
+
__dismissMenu();
destroyAllMenuPopups();
}
@@ -763,6 +767,11 @@ void QQuickMenu::clear()
m_containers.clear();
m_containersCount = 0;
+ // QTBUG-48927: a proxy menu (ApplicationWindowStyle.qml) must not
+ // delete its items, because they are owned by the menubar
+ if (m_proxy)
+ m_menuItems.clear();
+
while (!m_menuItems.empty())
delete m_menuItems.takeFirst();
m_itemsCount = 0;