summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBerthold Krevert <berthold.krevert@basyskom.com>2014-04-30 20:48:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-05-12 19:11:13 +0200
commitff365f7b465dc699a5a8a86106de8863812525a4 (patch)
treea69753e961bbf97991fa89e40a780a51f61d2078
parentdf63c4f1310830fbd7f97c07dabf1ff6e1982fb2 (diff)
downloadqtquickcontrols-ff365f7b465dc699a5a8a86106de8863812525a4.tar.gz
Set State_KeyboardFocusChange if focus has been requested by keyboard
Some styles (QFusionStyle, QGtkStyle) don't draw a focus rectangle if QStyle::State_KeyboardFocusChange is not set. This patch is based on change,84388 in QtDeclarative. Change-Id: Ic0c0bdd68689055cff12d601e64b77b53e7980dd Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
-rw-r--r--src/controls/Private/qquickstyleitem.cpp10
-rw-r--r--src/controls/controls.pro2
2 files changed, 11 insertions, 1 deletions
diff --git a/src/controls/Private/qquickstyleitem.cpp b/src/controls/Private/qquickstyleitem.cpp
index 10bda95d..b04eeaa9 100644
--- a/src/controls/Private/qquickstyleitem.cpp
+++ b/src/controls/Private/qquickstyleitem.cpp
@@ -50,6 +50,7 @@
#include <qsgsimpletexturenode.h>
#include <qquickwindow.h>
#include "private/qguiapplication_p.h"
+#include <QtQuick/private/qquickwindow_p.h>
#include <QtGui/qpa/qplatformtheme.h>
#include "../qquickmenuitem_p.h"
@@ -757,6 +758,15 @@ void QQuickStyleItem::initStyleOption()
if (m_horizontal)
m_styleoption->state |= QStyle::State_Horizontal;
+ // some styles don't draw a focus rectangle if
+ // QStyle::State_KeyboardFocusChange is not set
+ if (window()) {
+ Qt::FocusReason lastFocusReason = QQuickWindowPrivate::get(window())->lastFocusReason;
+ if (lastFocusReason == Qt::TabFocusReason || lastFocusReason == Qt::BacktabFocusReason) {
+ m_styleoption->state |= QStyle::State_KeyboardFocusChange;
+ }
+ }
+
if (sizeHint == "mini") {
m_styleoption->state |= QStyle::State_Mini;
} else if (sizeHint == "small") {
diff --git a/src/controls/controls.pro b/src/controls/controls.pro
index e7cd6ada..fd4aac0d 100644
--- a/src/controls/controls.pro
+++ b/src/controls/controls.pro
@@ -2,7 +2,7 @@ TARGET = qtquickcontrolsplugin
TARGETPATH = QtQuick/Controls
IMPORT_VERSION = 1.2
-QT += qml quick gui-private core-private
+QT += qml quick quick-private gui-private core-private
QMAKE_DOCS = $$PWD/doc/qtquickcontrols.qdocconf