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