aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/platform
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/platform')
-rw-r--r--src/imports/platform/qquickplatformmenuitem.cpp9
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;