aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/quicktemplates2/qquickmenu.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/quicktemplates2/qquickmenu.cpp b/src/quicktemplates2/qquickmenu.cpp
index 77327e55..6abaaf36 100644
--- a/src/quicktemplates2/qquickmenu.cpp
+++ b/src/quicktemplates2/qquickmenu.cpp
@@ -379,6 +379,9 @@ void QQuickMenuPrivate::reposition()
bool QQuickMenuPrivate::prepareEnterTransition()
{
Q_Q(QQuickMenu);
+ if (parentMenu && !cascade)
+ parentMenu->close();
+
// If a cascading sub-menu doesn't have enough space to open on
// the right, it flips on the other side of the parent menu.
allowHorizontalFlip = cascade && parentMenu;
@@ -471,14 +474,10 @@ void QQuickMenuPrivate::onItemActiveFocusChanged()
void QQuickMenuPrivate::openSubMenu(QQuickMenuItem *item, bool activate)
{
- Q_Q(QQuickMenu);
QQuickMenu *subMenu = item ? item->subMenu() : nullptr;
if (!subMenu)
return;
- if (!cascade)
- q->close();
-
if (activate)
QQuickMenuPrivate::get(subMenu)->setCurrentIndex(0, Qt::PopupFocusReason);
subMenu->open();