summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/accessible/widgets/qaccessiblemenu.cpp9
-rw-r--r--src/plugins/accessible/widgets/qaccessiblemenu.h1
-rw-r--r--src/widgets/accessible/qaccessiblewidget.cpp24
3 files changed, 7 insertions, 27 deletions
diff --git a/src/plugins/accessible/widgets/qaccessiblemenu.cpp b/src/plugins/accessible/widgets/qaccessiblemenu.cpp
index 46954c4fbf4..48fb471ace8 100644
--- a/src/plugins/accessible/widgets/qaccessiblemenu.cpp
+++ b/src/plugins/accessible/widgets/qaccessiblemenu.cpp
@@ -199,15 +199,6 @@ QRect QAccessibleMenuBar::rect(int child) const
return QAccessibleWidget::rect(child);
}
-int QAccessibleMenuBar::childAt(int x, int y) const
-{
- for (int i = childCount(); i >= 0; --i) {
- if (rect(i).contains(x,y))
- return i;
- }
- return -1;
-}
-
QAccessibleInterface *QAccessibleMenuBar::child(int index) const
{
if (index < childCount())
diff --git a/src/plugins/accessible/widgets/qaccessiblemenu.h b/src/plugins/accessible/widgets/qaccessiblemenu.h
index 0144bf90b9f..82bb93b3c47 100644
--- a/src/plugins/accessible/widgets/qaccessiblemenu.h
+++ b/src/plugins/accessible/widgets/qaccessiblemenu.h
@@ -85,7 +85,6 @@ public:
QAccessibleInterface *child(int index) const;
int childCount() const;
- int childAt(int x, int y) const;
QRect rect(int child) const;
QString text(Text t, int child) const;
diff --git a/src/widgets/accessible/qaccessiblewidget.cpp b/src/widgets/accessible/qaccessiblewidget.cpp
index 930e28002c9..e2c867ea968 100644
--- a/src/widgets/accessible/qaccessiblewidget.cpp
+++ b/src/widgets/accessible/qaccessiblewidget.cpp
@@ -231,24 +231,14 @@ int QAccessibleWidget::childAt(int x, int y) const
if (!QRect(gp.x(), gp.y(), w->width(), w->height()).contains(x, y))
return -1;
- QWidgetList list = childWidgets(w);
- int ccount = childCount();
-
- // a complex child
- if (list.size() < ccount) {
- for (int i = 1; i <= ccount; ++i) {
- if (rect(i).contains(x, y))
- return i;
- }
- return 0;
- }
-
- QPoint rp = w->mapFromGlobal(QPoint(x, y));
- for (int i = 0; i<list.size(); ++i) {
- QWidget *child = list.at(i);
- if (!child->isWindow() && !child->isHidden() && child->geometry().contains(rp)) {
+ for (int i = 0; i < childCount(); ++i) {
+ QAccessibleInterface *childIface = child(i);
+ bool found = false;
+ if (childIface->rect().contains(x, y))
+ found = true;
+ delete childIface;
+ if (found)
return i + 1;
- }
}
return 0;
}