diff options
Diffstat (limited to 'src/imports/platform')
-rw-r--r-- | src/imports/platform/qquickplatformmenuitem.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/imports/platform/qquickplatformmenuitem.cpp b/src/imports/platform/qquickplatformmenuitem.cpp index 45e6ba2d..3a717047 100644 --- a/src/imports/platform/qquickplatformmenuitem.cpp +++ b/src/imports/platform/qquickplatformmenuitem.cpp @@ -166,8 +166,13 @@ void QQuickPlatformMenuItem::sync() m_handle->setText(m_text); m_handle->setFont(m_font); m_handle->setHasExclusiveGroup(m_group && m_group->isExclusive()); - if (m_subMenu && m_subMenu->handle()) - m_handle->setMenu(m_subMenu->handle()); + if (m_subMenu) { + // Sync first as dynamically created menus may need to get the + // handle recreated + m_subMenu->sync(); + if (m_subMenu->handle()) + m_handle->setMenu(m_subMenu->handle()); + } #if QT_CONFIG(shortcut) QKeySequence sequence; |