From aae382ab3b2c47946efc10f269fad77d8244b3f4 Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Thu, 13 Mar 2014 08:40:04 +0100 Subject: [PATCH] QMenu: Enable sloppy submenu mouse navigation Since we're in the 21st century, we set QCommonStyle to return true to the SH_Menu_SloppySubMenus style hint. This unlocks all the logic already available in QMenu. Task-number: QTBUG-20094 [ChangeLog][QtWidgets][QMenu] Enable sloppy submenu mouse navigation Change-Id: I134c87e348d98d1f46055e0bfef2b4a4a3d2993a Reviewed-by: Shawn Rutledge Reviewed-by: Jens Bache-Wiig Reviewed-by: Marc Mutz --- src/widgets/styles/qcommonstyle.cpp | 4 ++++ src/widgets/styles/qmacstyle_mac.mm | 3 --- src/widgets/styles/qstyle.cpp | 6 ++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/widgets/styles/qcommonstyle.cpp b/src/widgets/styles/qcommonstyle.cpp index 9c2163ac8f..2be0cdb9b6 100644 --- a/src/widgets/styles/qcommonstyle.cpp +++ b/src/widgets/styles/qcommonstyle.cpp @@ -4896,6 +4896,10 @@ int QCommonStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget ret = 256; break; + case SH_Menu_SloppySubMenus: + ret = true; + break; + case SH_ProgressDialog_TextLabelAlignment: ret = Qt::AlignCenter; break; diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm index 53568f3c53..d4b937ec03 100644 --- a/src/widgets/styles/qmacstyle_mac.mm +++ b/src/widgets/styles/qmacstyle_mac.mm @@ -2532,9 +2532,6 @@ int QMacStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget *w ret = QDialogButtons::Reject; break; */ - case SH_Menu_SloppySubMenus: - ret = true; - break; case SH_GroupBox_TextLabelVerticalAlignment: ret = Qt::AlignTop; break; diff --git a/src/widgets/styles/qstyle.cpp b/src/widgets/styles/qstyle.cpp index 7568ba4e6e..d244c10316 100644 --- a/src/widgets/styles/qstyle.cpp +++ b/src/widgets/styles/qstyle.cpp @@ -1706,8 +1706,10 @@ void QStyle::drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, \value SH_Menu_Scrollable Whether popup menus must support scrolling. - \value SH_Menu_SloppySubMenus Whether popupmenu's must support - sloppy submenu; as implemented on Mac OS. + \value SH_Menu_SloppySubMenus Whether popup menus must support + the user moving the mouse cursor to a submenu while crossing + other items of the menu. This is supported on most modern + desktop platforms. \value SH_ScrollView_FrameOnlyAroundContents Whether scrollviews draw their frame only around contents (like Motif), or around