From 827f7db3d99c17e66ccccef578060a9feed66312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Mill=C3=A1n=20Soto?= Date: Wed, 18 Jan 2012 15:47:44 +0100 Subject: Do not check isActiveWindow to determine if an accessible widget is focusable QWidget::isActiveWindow() was being checked in QAccessibleWidget::state to determine if a widget is focusable. As a result, focusable widgets were reported to be not focusable when the window was not active. Change-Id: I765eddca859d859d19d31bd2e9ffe3b132a1a4ef Reviewed-by: Frederik Gladhorn --- src/gui/accessible/qaccessiblewidget.cpp | 2 +- tests/auto/qaccessibility/tst_qaccessibility.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/accessible/qaccessiblewidget.cpp b/src/gui/accessible/qaccessiblewidget.cpp index beb251b..a03bc34 100644 --- a/src/gui/accessible/qaccessiblewidget.cpp +++ b/src/gui/accessible/qaccessiblewidget.cpp @@ -940,7 +940,7 @@ QAccessible::State QAccessibleWidget::state(int child) const QWidget *w = widget(); if (w->testAttribute(Qt::WA_WState_Visible) == false) state |= Invisible; - if (w->focusPolicy() != Qt::NoFocus && w->isActiveWindow()) + if (w->focusPolicy() != Qt::NoFocus) state |= Focusable; if (w->hasFocus()) state |= Focused; diff --git a/tests/auto/qaccessibility/tst_qaccessibility.cpp b/tests/auto/qaccessibility/tst_qaccessibility.cpp index 9d1ca91..1b35349 100644 --- a/tests/auto/qaccessibility/tst_qaccessibility.cpp +++ b/tests/auto/qaccessibility/tst_qaccessibility.cpp @@ -3027,7 +3027,7 @@ void tst_QAccessibility::lineEditTest() QCOMPARE(iface->childCount(), 0); QVERIFY(iface->state(0) & QAccessible::Sizeable); QVERIFY(iface->state(0) & QAccessible::Movable); - QCOMPARE(bool(iface->state(0) & QAccessible::Focusable), le->isActiveWindow()); + QVERIFY(iface->state(0) & QAccessible::Focusable); QVERIFY(iface->state(0) & QAccessible::Selectable); QVERIFY(iface->state(0) & QAccessible::HasPopup); QCOMPARE(bool(iface->state(0) & QAccessible::Focused), le->hasFocus()); @@ -3056,7 +3056,7 @@ void tst_QAccessibility::lineEditTest() QApplication::processEvents(); QVERIFY(!(iface->state(0) & QAccessible::Sizeable)); QVERIFY(!(iface->state(0) & QAccessible::Movable)); - QCOMPARE(bool(iface->state(0) & QAccessible::Focusable), le->isActiveWindow()); + QVERIFY(iface->state(0) & QAccessible::Focusable); QVERIFY(iface->state(0) & QAccessible::Selectable); QVERIFY(iface->state(0) & QAccessible::HasPopup); QCOMPARE(bool(iface->state(0) & QAccessible::Focused), le->hasFocus()); -- cgit v0.12