Call updateAccessibility on the QGraphicsObject in updateMicroFocus
authorJan-Arve Sæther <jan-arve.saether@nokia.com>
Thu, 5 May 2011 14:21:36 +0000 (16:21 +0200)
committerJan-Arve Sæther <jan-arve.saether@nokia.com>
Tue, 10 May 2011 10:35:50 +0000 (12:35 +0200)
Since QGraphicsObjects now can be in the a11y hierarchy, we should
treat them just like we treat widgets.
(cherry picked from commit 860745a4713b29857d14571572504da71a2ca077)

Reviewed-by: Frederik Gladhorn
(cherry picked from commit 4687938fd03ed65306039af6b4e5e192ec8bf491)

src/gui/graphicsview/qgraphicsitem.cpp

index e67fe82..41ff317 100644 (file)
@@ -7395,15 +7395,19 @@ void QGraphicsItem::updateMicroFocus()
     if (QWidget *fw = QApplication::focusWidget()) {
         if (scene()) {
             for (int i = 0 ; i < scene()->views().count() ; ++i) {
-                if (scene()->views().at(i) == fw)
-                    if (QInputContext *inputContext = fw->inputContext())
+                if (scene()->views().at(i) == fw) {
+                    if (QInputContext *inputContext = fw->inputContext()) {
                         inputContext->update();
-            }
-        }
 #ifndef QT_NO_ACCESSIBILITY
-        // ##### is this correct
-        QAccessible::updateAccessibility(fw, 0, QAccessible::StateChanged);
+                        // ##### is this correct
+                        if (toGraphicsObject())
+                            QAccessible::updateAccessibility(toGraphicsObject(), 0, QAccessible::StateChanged);
 #endif
+                        break;
+                    }
+                }
+            }
+        }
     }
 #endif
 }