From 009cd671ec5a51ab360bce39262482ee1b86dc46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Mill=C3=A1n=20Soto?= Date: Wed, 18 Jan 2012 18:23:43 +0100 Subject: [PATCH] Do not check isActiveWindow in QAccessibleWidget::state 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: I73c47181ed132a84f0251cb67d0e20912e29a1a6 Reviewed-by: Frederik Gladhorn --- src/widgets/accessible/qaccessiblewidget.cpp | 2 +- tests/auto/other/qaccessibility/tst_qaccessibility.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/widgets/accessible/qaccessiblewidget.cpp b/src/widgets/accessible/qaccessiblewidget.cpp index 7a0aab56ddb..56ba990382f 100644 --- a/src/widgets/accessible/qaccessiblewidget.cpp +++ b/src/widgets/accessible/qaccessiblewidget.cpp @@ -597,7 +597,7 @@ QAccessible::State QAccessibleWidget::state() const QWidget *w = widget(); if (w->testAttribute(Qt::WA_WState_Visible) == false) state.invisible = true; - if (w->focusPolicy() != Qt::NoFocus && w->isActiveWindow()) + if (w->focusPolicy() != Qt::NoFocus) state.focusable = true; if (w->hasFocus()) state.focused = true; diff --git a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp index eca5814b8e3..eb76202e35a 100644 --- a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp +++ b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp @@ -1685,7 +1685,7 @@ void tst_QAccessibility::lineEditTest() QCOMPARE(iface->childCount(), 0); QVERIFY(iface->state().sizeable); QVERIFY(iface->state().movable); - QCOMPARE(bool(iface->state().focusable), le->isActiveWindow()); + QVERIFY(iface->state().focusable); QVERIFY(iface->state().selectable); QVERIFY(iface->state().hasPopup); QCOMPARE(bool(iface->state().focused), le->hasFocus()); @@ -1714,7 +1714,7 @@ void tst_QAccessibility::lineEditTest() QApplication::processEvents(); QVERIFY(!(iface->state().sizeable)); QVERIFY(!(iface->state().movable)); - QCOMPARE(bool(iface->state().focusable), le->isActiveWindow()); + QVERIFY(iface->state().focusable); QVERIFY(iface->state().selectable); QVERIFY(iface->state().hasPopup); QCOMPARE(bool(iface->state().focused), le->hasFocus());