diff options
author | Jan Arve Sæther <jan-arve.saether@qt.io> | 2020-06-17 16:44:32 +0200 |
---|---|---|
committer | Jan Arve Sæther <jan-arve.saether@qt.io> | 2020-06-22 14:07:28 +0000 |
commit | 33ce8219fd1a6c26e4918012cd00376c386497c2 (patch) | |
tree | 7551997268ce225a3d5f71bcc4af5e3cb3209887 | |
parent | ec89612048d8d29cf91f45d17c8804642fa7bd0f (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.cpp | 8 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_switch.qml | 3 |
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") } } |