aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-09-01 20:31:50 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-09-02 07:26:54 +0000
commitd00c6d93ce1974e27bb49c57ae87156260501577 (patch)
tree9302d513122dd720c0a1e85a8b1d35c144fe9d5a /src
parent79636b847d9ee04475cf1a0415996d483ad32593 (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.cpp8
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()) {