aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-01-08 16:15:21 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-11 10:02:58 +0100
commita1b64d9566a49d287a8fad122859e8a99ad92151 (patch)
treebace1e16d30cdaeb30a1c760dbf7e47a28380664
parentaae772e7c3820fe3559dafcaa958711d89a78827 (diff)
On Mac only editable ComboBox should receive tab focus
[ChangeLog][QtQuickControls] Mac: ComboBox will only get tab focus when it is editable. Change-Id: Ife04de67b2e3dea77ba878b247ad0b676c879c02 Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
-rw-r--r--src/plugins/accessible/quick/qaccessiblequickitem.cpp5
-rw-r--r--src/quick/items/qquickitem.cpp6
2 files changed, 9 insertions, 2 deletions
diff --git a/src/plugins/accessible/quick/qaccessiblequickitem.cpp b/src/plugins/accessible/quick/qaccessiblequickitem.cpp
index 9e8c2a6020..3521d4f98e 100644
--- a/src/plugins/accessible/quick/qaccessiblequickitem.cpp
+++ b/src/plugins/accessible/quick/qaccessiblequickitem.cpp
@@ -185,11 +185,14 @@ QAccessible::State QAccessibleQuickItem::state() const
case QAccessible::PageTab:
case QAccessible::EditableText:
case QAccessible::SpinBox:
- case QAccessible::ComboBox:
case QAccessible::Terminal:
case QAccessible::ScrollBar:
state.focusable = true;
break;
+ case QAccessible::ComboBox:
+ state.focusable = true;
+ state.editable = item()->property("editable").toBool();
+ break;
default:
break;
}
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp
index c308a7230a..5739d6874e 100644
--- a/src/quick/items/qquickitem.cpp
+++ b/src/quick/items/qquickitem.cpp
@@ -2067,8 +2067,12 @@ bool QQuickItemPrivate::canAcceptTabFocus(QQuickItem *item)
if (role == QAccessible::EditableText
|| role == QAccessible::Table
|| role == QAccessible::List
- || role == QAccessible::SpinBox)
+ || role == QAccessible::SpinBox) {
result = true;
+ } else if (role == QAccessible::ComboBox) {
+ QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(item);
+ return iface->state().editable;
+ }
}
#endif