aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Arve Sæther <jan-arve.saether@qt.io>2020-06-17 16:44:32 +0200
committerJan Arve Sæther <jan-arve.saether@qt.io>2020-06-22 14:07:28 +0000
commit33ce8219fd1a6c26e4918012cd00376c386497c2 (patch)
tree7551997268ce225a3d5f71bcc4af5e3cb3209887
parentec89612048d8d29cf91f45d17c8804642fa7bd0f (diff)
Let macOS have TabFocus focus policy
This is how the macOS platform behaves. This will cause a slight behavior change for all Qt Quick Controls 2 styles on macOS, as reflected by the change in autotests. Change-Id: I9ea744737d0d157ee8c83955f718c1cd889a8c1d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r--src/quicktemplates2/qquickabstractbutton.cpp8
-rw-r--r--tests/auto/controls/data/tst_switch.qml3
2 files changed, 10 insertions, 1 deletions
diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp
index f5dec6c2..8a61e570 100644
--- a/src/quicktemplates2/qquickabstractbutton.cpp
+++ b/src/quicktemplates2/qquickabstractbutton.cpp
@@ -436,7 +436,11 @@ QQuickAbstractButton::QQuickAbstractButton(QQuickItem *parent)
: QQuickControl(*(new QQuickAbstractButtonPrivate), parent)
{
setActiveFocusOnTab(true);
+#ifdef Q_OS_MACOS
+ setFocusPolicy(Qt::TabFocus);
+#else
setFocusPolicy(Qt::StrongFocus);
+#endif
setAcceptedMouseButtons(Qt::LeftButton);
#if QT_CONFIG(cursor)
setCursor(Qt::ArrowCursor);
@@ -447,7 +451,11 @@ QQuickAbstractButton::QQuickAbstractButton(QQuickAbstractButtonPrivate &dd, QQui
: QQuickControl(dd, parent)
{
setActiveFocusOnTab(true);
+#ifdef Q_OS_MACOS
+ setFocusPolicy(Qt::TabFocus);
+#else
setFocusPolicy(Qt::StrongFocus);
+#endif
setAcceptedMouseButtons(Qt::LeftButton);
#if QT_CONFIG(cursor)
setCursor(Qt::ArrowCursor);
diff --git a/tests/auto/controls/data/tst_switch.qml b/tests/auto/controls/data/tst_switch.qml
index b3fab41c..8ec8ffb4 100644
--- a/tests/auto/controls/data/tst_switch.qml
+++ b/tests/auto/controls/data/tst_switch.qml
@@ -606,6 +606,7 @@ TestCase {
verify(!control.activeFocus)
mouseClick(control.indicator)
- verify(control.activeFocus)
+ // should not get activeFocus on mouseClick on macOS
+ compare(control.activeFocus, Qt.platform.os !== "osx" && Qt.platform.os !== "macos")
}
}