summaryrefslogtreecommitdiffstats
path: root/src/widgets/accessible/qaccessiblewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/accessible/qaccessiblewidget.cpp')
-rw-r--r--src/widgets/accessible/qaccessiblewidget.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/widgets/accessible/qaccessiblewidget.cpp b/src/widgets/accessible/qaccessiblewidget.cpp
index cfc76bc253..3c215ba64c 100644
--- a/src/widgets/accessible/qaccessiblewidget.cpp
+++ b/src/widgets/accessible/qaccessiblewidget.cpp
@@ -424,14 +424,16 @@ int QAccessibleWidget::navigate(QAccessible::RelationFlag relation, int entry,
switch (relation) {
case QAccessible::Covers:
if (entry > 0) {
- QAccessibleInterface *pIface = QAccessible::queryAccessibleInterface(parentObject());
+ QAccessibleInterface *pIface = parent();
if (!pIface)
return -1;
QRect r = rect();
int sibCount = pIface->childCount();
QAccessibleInterface *sibling = 0;
- for (int i = pIface->indexOfChild(this) + 1; i <= sibCount && entry; ++i) {
+ // FIXME: this code looks very suspicious
+ // why start at this index?
+ for (int i = pIface->indexOfChild(this) + 2; i <= sibCount && entry; ++i) {
sibling = pIface->child(i - 1);
if (!sibling || (sibling->state().invisible)) {
delete sibling;
@@ -460,8 +462,9 @@ int QAccessibleWidget::navigate(QAccessible::RelationFlag relation, int entry,
QRect r = rect();
int index = pIface->indexOfChild(this);
QAccessibleInterface *sibling = 0;
- for (int i = 1; i < index && entry; ++i) {
- sibling = pIface->child(i - 1);
+ // FIXME: why end at index?
+ for (int i = 0; i < index && entry; ++i) {
+ sibling = pIface->child(i);
Q_ASSERT(sibling);
if (!sibling || (sibling->state().invisible)) {
delete sibling;
@@ -595,10 +598,7 @@ int QAccessibleWidget::childCount() const
int QAccessibleWidget::indexOfChild(const QAccessibleInterface *child) const
{
QWidgetList cl = childWidgets(widget());
- int index = cl.indexOf(qobject_cast<QWidget *>(child->object()));
- if (index != -1)
- ++index;
- return index;
+ return cl.indexOf(qobject_cast<QWidget *>(child->object()));
}
// from qwidget.cpp