aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickmenu.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-07-12 14:21:04 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-07-12 14:24:05 +0000
commitf1797a43d6d0812aab1077a9ebeeaeb68c60b845 (patch)
treed2d4c5b54db9867a0b930ff93c202788bf1ed65a /src/quicktemplates2/qquickmenu.cpp
parent5232a0c4005e743942c8f371aeb1ba024d4d4d03 (diff)
QQuickMenu: control allowHorizontalFlip from prepareEnterTransition()
Change-Id: I0444e3e9137e1b71cdd16c35dc7cc47875937a22 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickmenu.cpp')
-rw-r--r--src/quicktemplates2/qquickmenu.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/quicktemplates2/qquickmenu.cpp b/src/quicktemplates2/qquickmenu.cpp
index bc19a707..a5546306 100644
--- a/src/quicktemplates2/qquickmenu.cpp
+++ b/src/quicktemplates2/qquickmenu.cpp
@@ -362,6 +362,10 @@ void QQuickMenuPrivate::itemGeometryChanged(QQuickItem *, QQuickGeometryChange,
bool QQuickMenuPrivate::prepareEnterTransition()
{
Q_Q(QQuickMenu);
+ // 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;
+
if (!QQuickPopupPrivate::prepareEnterTransition())
return false;
@@ -468,10 +472,8 @@ void QQuickMenuPrivate::openSubMenu(QQuickMenuItem *item, bool activate)
q->y() + (q->height() - subMenu->height()) / 2));
}
- QQuickMenuPrivate *p = QQuickMenuPrivate::get(subMenu);
- p->allowHorizontalFlip = cascade;
if (activate)
- p->setCurrentIndex(0, Qt::PopupFocusReason);
+ QQuickMenuPrivate::get(subMenu)->setCurrentIndex(0, Qt::PopupFocusReason);
subMenu->open();
}