summaryrefslogtreecommitdiffstats
path: root/src/controls/qquickmenubar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/controls/qquickmenubar.cpp')
-rw-r--r--src/controls/qquickmenubar.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/controls/qquickmenubar.cpp b/src/controls/qquickmenubar.cpp
index d3503f89c..33a1e9ef9 100644
--- a/src/controls/qquickmenubar.cpp
+++ b/src/controls/qquickmenubar.cpp
@@ -85,9 +85,19 @@ void QQuickMenuBar::setNative(bool native)
{
bool wasNative = isNative();
if (native) {
- if (!m_platformMenuBar)
+ if (!m_platformMenuBar) {
m_platformMenuBar = QGuiApplicationPrivate::platformTheme()->createPlatformMenuBar();
+ if (m_platformMenuBar) {
+ m_platformMenuBar->handleReparent(m_parentWindow);
+ foreach (QQuickMenu *menu, m_menus)
+ m_platformMenuBar->insertMenu(menu->platformMenu(), 0 /* append */);
+ }
+ }
} else {
+ if (m_platformMenuBar) {
+ foreach (QQuickMenu *menu, m_menus)
+ m_platformMenuBar->removeMenu(menu->platformMenu());
+ }
delete m_platformMenuBar;
m_platformMenuBar = 0;
}