diff options
Diffstat (limited to 'src/controls/qquickmenu.cpp')
-rw-r--r-- | src/controls/qquickmenu.cpp | 11 |
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; |