From 2a68cffa843572b2a90780758c5c4eaa7c694c48 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Fri, 7 Feb 2014 17:55:08 +0100 Subject: Accessibility Linux: Report Active state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The fixme comment is invalid since QAccessibleWidget actually checks for isWindow and sets the active state. This is messed up because in Qt 4 there was a work-around to set active for windows in a different code path. [ChangeLog][QtGui] Accessibility on Linux now reports the active state correctly. Change-Id: I9e2cf436b3ffa7ef28286ee49d6e582f179930c6 Reviewed-by: Jan Arve Sæther --- src/platformsupport/linuxaccessibility/atspiadaptor.cpp | 7 ------- src/platformsupport/linuxaccessibility/constant_mappings.cpp | 2 ++ 2 files changed, 2 insertions(+), 7 deletions(-) (limited to 'src/platformsupport') diff --git a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp index 8850f18bab..1ccab0a859 100644 --- a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp +++ b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp @@ -1391,13 +1391,6 @@ bool AtSpiAdaptor::accessibleInterface(QAccessibleInterface *interface, const QS if (interface->tableInterface()) { setSpiStateBit(&spiState, ATSPI_STATE_MANAGES_DESCENDANTS); } -// FIXME: figure out if this is a top level window and set its active state accordingly -// if (interface->object() && interface->object()->isWidgetType()) { -// QWidget *w = qobject_cast(interface->object()); -// if (w->topLevelWidget() && w->isActiveWindow()) { -// setSpiStateBit(&spiState, ATSPI_STATE_ACTIVE); -// } -// } QAccessible::Role role = interface->role(); if (role == QAccessible::TreeItem || role == QAccessible::ListItem) { diff --git a/src/platformsupport/linuxaccessibility/constant_mappings.cpp b/src/platformsupport/linuxaccessibility/constant_mappings.cpp index f8bfaf4753..9de667158b 100644 --- a/src/platformsupport/linuxaccessibility/constant_mappings.cpp +++ b/src/platformsupport/linuxaccessibility/constant_mappings.cpp @@ -61,6 +61,8 @@ quint64 spiStatesFromQState(QAccessible::State state) { quint64 spiState = 0; + if (state.active) + setSpiStateBit(&spiState, ATSPI_STATE_ACTIVE); if (state.editable) setSpiStateBit(&spiState, ATSPI_STATE_EDITABLE); if (!state.disabled) { -- cgit v1.2.3