summaryrefslogtreecommitdiffstats
path: root/src/widgets/accessible/complexwidgets.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/accessible/complexwidgets.cpp')
-rw-r--r--src/widgets/accessible/complexwidgets.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/widgets/accessible/complexwidgets.cpp b/src/widgets/accessible/complexwidgets.cpp
index ce2ceac938..185b319402 100644
--- a/src/widgets/accessible/complexwidgets.cpp
+++ b/src/widgets/accessible/complexwidgets.cpp
@@ -398,9 +398,24 @@ void QAccessibleComboBox::doAction(const QString &actionName)
{
if (actionName == showMenuAction() || actionName == pressAction()) {
if (comboBox()->view()->isVisible()) {
+#if defined(Q_OS_ANDROID)
+ const auto list = child(0)->tableInterface();
+ if (list && list->selectedRowCount() > 0) {
+ comboBox()->setCurrentIndex(list->selectedRows().at(0));
+ }
+ comboBox()->setFocus();
+#endif
comboBox()->hidePopup();
} else {
comboBox()->showPopup();
+#if defined(Q_OS_ANDROID)
+ const auto list = child(0)->tableInterface();
+ if (list && list->selectedRowCount() > 0) {
+ auto selectedCells = list->selectedCells();
+ QAccessibleEvent ev(selectedCells.at(0),QAccessible::Focus);
+ QAccessible::updateAccessibility(&ev);
+ }
+#endif
}
}
}