diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-09-01 20:31:50 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-09-02 07:26:54 +0000 |
commit | d00c6d93ce1974e27bb49c57ae87156260501577 (patch) | |
tree | 9302d513122dd720c0a1e85a8b1d35c144fe9d5a /src | |
parent | 79636b847d9ee04475cf1a0415996d483ad32593 (diff) |
Switch: fix Qt::ClickFocus on the indicator
Task-number: QTBUG-55647
Change-Id: Ic89beaa1e6674d3f94c9a713fd9bd8e8fdfafbb6
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/quicktemplates2/qquickswitch.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/quicktemplates2/qquickswitch.cpp b/src/quicktemplates2/qquickswitch.cpp index 439950d8..cb966568 100644 --- a/src/quicktemplates2/qquickswitch.cpp +++ b/src/quicktemplates2/qquickswitch.cpp @@ -37,6 +37,8 @@ #include "qquickswitch_p.h" #include "qquickabstractbutton_p_p.h" +#include <QtGui/qstylehints.h> +#include <QtGui/qguiapplication.h> #include <QtQuick/private/qquickwindow_p.h> #include <QtQuick/private/qquickevents_p_p.h> @@ -119,6 +121,9 @@ bool QQuickSwitchPrivate::handleMousePressEvent(QQuickItem *child, QMouseEvent * { Q_Q(QQuickSwitch); Q_UNUSED(child); + if ((focusPolicy & Qt::ClickFocus) == Qt::ClickFocus && !QGuiApplication::styleHints()->setFocusOnTouchRelease()) + q->forceActiveFocus(Qt::MouseFocusReason); + pressPoint = event->pos(); q->setPressed(true); event->accept(); @@ -140,6 +145,9 @@ bool QQuickSwitchPrivate::handleMouseMoveEvent(QQuickItem *child, QMouseEvent *e bool QQuickSwitchPrivate::handleMouseReleaseEvent(QQuickItem *child, QMouseEvent *event) { Q_Q(QQuickSwitch); + if ((focusPolicy & Qt::ClickFocus) == Qt::ClickFocus && QGuiApplication::styleHints()->setFocusOnTouchRelease()) + q->forceActiveFocus(Qt::MouseFocusReason); + pressPoint = QPoint(); q->setPressed(false); if (child->keepMouseGrab()) { |