Send accessible focus event after list view has focus

QListView::currentChanged sends an accessible focus event even if the
list view doesn't have focus. For screen readers like Orca, accessible
focus events will be ignored if the target item does not have focus
when screen reader receives the event.

This corrects the behavior by calling QAbstractItemView::currentChanged
before sending an accessible focus event.

Change-Id: I71732f62e2f27d7856b4781b268495b88b24b715
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
(cherry picked from commit 2cf5253b91d5269e387c68d06f58f00ec36e80c0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Fushan Wen 2022-10-18 20:38:35 +08:00 committed by Qt Cherry-pick Bot
parent 32af1fe7d3
commit bad9d473d3

View File

@ -3398,6 +3398,7 @@ void QIconModeViewBase::updateContentsSize()
*/
void QListView::currentChanged(const QModelIndex &current, const QModelIndex &previous)
{
QAbstractItemView::currentChanged(current, previous);
#if QT_CONFIG(accessibility)
if (QAccessible::isActive()) {
if (current.isValid()) {
@ -3408,7 +3409,6 @@ void QListView::currentChanged(const QModelIndex &current, const QModelIndex &pr
}
}
#endif
QAbstractItemView::currentChanged(current, previous);
}
/*!