diff options
author | Michael Weghorn <m.weghorn@posteo.de> | 2022-08-01 14:18:05 +0200 |
---|---|---|
committer | Michael Weghorn <m.weghorn@posteo.de> | 2022-08-17 04:46:59 +0200 |
commit | fa0e24b641ad241195cab24d008fed6e68983944 (patch) | |
tree | 55549e01f9b0624cccc6c85807b4ee9535eb3b8f /src/gui/accessible | |
parent | 49c966bc8561d1ca71a97b83ae40852233630eb9 (diff) | |
download | qtbase-fa0e24b641ad241195cab24d008fed6e68983944.tar.gz |
a11y atspi: translate coords for GetOffsetAtPoint the right way
The coordinate type for "GetOffsetAtPoint" describes the
coordinate type of the input coordinates and
`QAccessibleTextInterface::offsetAtPoint` expects the
coordinates in screen coordinates.
Therefore, if window-relative coordinates are given,
the screen coordinates of the window need to be added
(not subtracted) to the window-relative coordinates of the point
in order to calculate the screen coordinates of the point.
Fixes: QTBUG-105281
Pick-to: 6.4 6.3 6.2
Change-Id: I5517335c0c0d6a47b8c45c7e4f8f8b5a91f0fcd7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/gui/accessible')
-rw-r--r-- | src/gui/accessible/linux/atspiadaptor.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gui/accessible/linux/atspiadaptor.cpp b/src/gui/accessible/linux/atspiadaptor.cpp index 6f6583f814..0c27422364 100644 --- a/src/gui/accessible/linux/atspiadaptor.cpp +++ b/src/gui/accessible/linux/atspiadaptor.cpp @@ -1804,7 +1804,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); |