summaryrefslogtreecommitdiffstats
path: root/src/gui/accessible/linux/atspiadaptor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/accessible/linux/atspiadaptor.cpp')
-rw-r--r--src/gui/accessible/linux/atspiadaptor.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/gui/accessible/linux/atspiadaptor.cpp b/src/gui/accessible/linux/atspiadaptor.cpp
index 3ead568c56..7ab9fe2697 100644
--- a/src/gui/accessible/linux/atspiadaptor.cpp
+++ b/src/gui/accessible/linux/atspiadaptor.cpp
@@ -1561,11 +1561,12 @@ bool AtSpiAdaptor::inheritsQAction(QObject *object)
// Component
static QAccessibleInterface * getWindow(QAccessibleInterface * interface)
{
- if (interface->role() == QAccessible::Window)
+ if (interface->role() == QAccessible::Dialog || interface->role() == QAccessible::Window)
return interface;
QAccessibleInterface * parent = interface->parent();
- while (parent && parent->role() != QAccessible::Window)
+ while (parent && parent->role() != QAccessible::Dialog
+ && parent->role() != QAccessible::Window)
parent = parent->parent();
return parent;
@@ -1583,7 +1584,7 @@ static QRect getRelativeRect(QAccessibleInterface *interface)
wr = window->rect();
cr.setX(cr.x() - wr.x());
- cr.setY(cr.x() - wr.y());
+ cr.setY(cr.y() - wr.y());
}
return cr;
}
@@ -1841,7 +1842,7 @@ bool AtSpiAdaptor::textInterface(QAccessibleInterface *interface, const QString
uint coordType = message.arguments().at(2).toUInt();
if (coordType == ATSPI_COORD_TYPE_WINDOW) {
QWindow *win = interface->window();
- point -= QPoint(win->x(), win->y());
+ point += QPoint(win->x(), win->y());
}
int offset = interface->textInterface()->offsetAtPoint(point);
sendReply(connection, message, offset);
@@ -2288,10 +2289,10 @@ bool AtSpiAdaptor::tableInterface(QAccessibleInterface *interface, const QString
QAccessibleInterface * captionInterface= interface->tableInterface()->caption();
if (captionInterface) {
QSpiObjectReference ref = QSpiObjectReference(connection, QDBusObjectPath(pathForInterface(captionInterface)));
- sendReply(connection, message, QVariant::fromValue(ref));
+ sendReply(connection, message, QVariant::fromValue(QDBusVariant(QVariant::fromValue(ref))));
} else {
- sendReply(connection, message, QVariant::fromValue(
- QSpiObjectReference(connection, QDBusObjectPath(ATSPI_DBUS_PATH_NULL))));
+ sendReply(connection, message, QVariant::fromValue(QDBusVariant(QVariant::fromValue(
+ QSpiObjectReference(connection, QDBusObjectPath(ATSPI_DBUS_PATH_NULL))))));
}
} else if (function == QLatin1String("GetNColumns")) {
connection.send(message.createReply(QVariant::fromValue(QDBusVariant(