From ad809436378a78a38ea031de49ff6e964917d658 Mon Sep 17 00:00:00 2001 From: Noah Davis <noahadvs@gmail.com> Date: Wed, 9 Feb 2022 10:29:33 -0500 Subject: [PATCH 031/147] QPA: add ButtonPressKeys ThemeHint Platforms should allow more than just Qt::Key_Space and Qt::Key_Select to press buttons. KDE Plasma developers want to be able to press buttons with Return/Enter. GTK allows buttons to be pressed with Return/Enter, so this should be considered the native behavior for GNOME as well. Adding this ThemeHint allows customizing the keys that can press a button via a QPlatformTheme subclass. Change-Id: I73284e9b73590fbdd0b94a0cb4557e94b3722af9 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 97eeded5fc8c8ebb476ed4a10d8726dd4d46f181) --- src/gui/kernel/qplatformtheme.cpp | 4 ++++ src/gui/kernel/qplatformtheme.h | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qplatformtheme.cpp b/src/gui/kernel/qplatformtheme.cpp index 71521c0339..2325873245 100644 --- a/src/gui/kernel/qplatformtheme.cpp +++ b/src/gui/kernel/qplatformtheme.cpp @@ -163,6 +163,8 @@ QT_BEGIN_NAMESPACE \value ShowShortcutsInContextMenus (bool) Whether to display shortcut key sequences in context menus. + \value ButtonPressKeys (QList<Qt::Key>) A list of keys that can be used to press buttons via keyboard input. + \sa themeHint(), QStyle::pixelMetric() */ @@ -563,6 +565,8 @@ QVariant QPlatformTheme::defaultThemeHint(ThemeHint hint) } case MouseQuickSelectionThreshold: return QVariant(10); + case ButtonPressKeys: + return QVariant::fromValue(QList<Qt::Key>({ Qt::Key_Space, Qt::Key_Select })); } return QVariant(); } diff --git a/src/gui/kernel/qplatformtheme.h b/src/gui/kernel/qplatformtheme.h index 3185fc4541..7e6c9d5740 100644 --- a/src/gui/kernel/qplatformtheme.h +++ b/src/gui/kernel/qplatformtheme.h @@ -120,7 +120,8 @@ public: TouchDoubleTapDistance, ShowShortcutsInContextMenus, IconFallbackSearchPaths, - MouseQuickSelectionThreshold + MouseQuickSelectionThreshold, + ButtonPressKeys }; enum DialogType { -- 2.40.1