summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2011-06-27 15:16:46 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2011-06-27 15:16:46 (GMT)
commitb39dc4a9029040f43f1ca3ace6bf7e77740a3f39 (patch)
treef3aee03f9c978f645d56307a5162a8e0f65b021c /src/gui/kernel
parenteadf2bbf49e906f43421fc31fd76ba9812a545f4 (diff)
parentfff467981fe515974e722e1d092a916f6a8f5dcc (diff)
downloadQt-b39dc4a9029040f43f1ca3ace6bf7e77740a3f39.zip
Qt-b39dc4a9029040f43f1ca3ace6bf7e77740a3f39.tar.gz
Qt-b39dc4a9029040f43f1ca3ace6bf7e77740a3f39.tar.bz2
Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-water-staging into master-integration
* 'master' of scm.dev.nokia.troll.no:qt/qt-water-staging: Incorrect property name in QAccessibleAbstractSpinBox::setCurrentValue When asking for relations, don't crash on children that don't return an interface. Remove more inconsistencies with invisible. QAccessibleToolButton::text should return accessibleName if set. Remove stray semicolon. Do not expose text when echo mode is not Normal. Check validator when changing text using accessibility functions. Fix some issues introduced in df6713b8f55fc007796f40. Add tilde (both ~ and ~<userName>) expansion to QFileDialog on UNIX. Avoid bogus accessibility focus events from menus. Build fix for Mac OS 10.5 Avoided calling updateAccessibility() from updateMicroFocus if the item was hidden Notify a11y framework of FocusChanges for QGraphicsObject Call updateAccessibility on the QGraphicsObject in updateMicroFocus Fix updateAccessibility for QGraphicsObjects Make accessibility work on Windows with alien
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qwidget.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index ea2412b..a2109b4 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -6434,6 +6434,10 @@ void QWidget::setFocus(Qt::FocusReason reason)
if (!(testAttribute(Qt::WA_WState_Created) && window()->windowType() != Qt::Popup && internalWinId()))
//setFocusWidget will already post a focus event for us (that the AT client receives) on Windows
# endif
+# ifdef Q_OS_UNIX
+ // menus update the focus manually and this would create bogus events
+ if (!(f->inherits("QMenuBar") || f->inherits("QMenu") || f->inherits("QMenuItem")))
+# endif
QAccessible::updateAccessibility(f, 0, QAccessible::Focus);
#endif
#ifndef QT_NO_GRAPHICSVIEW
@@ -11354,8 +11358,10 @@ void QWidget::updateMicroFocus()
}
#endif
#ifndef QT_NO_ACCESSIBILITY
- // ##### is this correct
- QAccessible::updateAccessibility(this, 0, QAccessible::StateChanged);
+ if (isVisible()) {
+ // ##### is this correct
+ QAccessible::updateAccessibility(this, 0, QAccessible::StateChanged);
+ }
#endif
}