diff options
Diffstat (limited to 'src/widgets/accessible/complexwidgets.cpp')
-rw-r--r-- | src/widgets/accessible/complexwidgets.cpp | 15 |
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 } } } |