From f3b56e0eb12dddd1bebd7537943217dab25d1634 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Thu, 6 Feb 2020 10:59:20 +0100 Subject: [PATCH] magnifier: Transform a11y events' coordinates by scale factor We get those events in logical coordinates, which we have to transform into actual pixels. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/984 --- js/ui/magnifier.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js index 7b43e8dd2..6e9b9e7cc 100644 --- a/js/ui/magnifier.js +++ b/js/ui/magnifier.js @@ -799,8 +799,9 @@ var ZoomRegion = class ZoomRegion { return; } - let [xFocus, yFocus] = [extents.x + (extents.width / 2), - extents.y + (extents.height / 2)]; + let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor; + let [xFocus, yFocus] = [(extents.x + (extents.width / 2)) * scaleFactor, + (extents.y + (extents.height / 2)) * scaleFactor]; if (this._xFocus !== xFocus || this._yFocus !== yFocus) { [this._xFocus, this._yFocus] = [xFocus, yFocus]; @@ -820,7 +821,8 @@ var ZoomRegion = class ZoomRegion { return; } - let [xCaret, yCaret] = [extents.x, extents.y]; + let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor; + let [xCaret, yCaret] = [extents.x * scaleFactor, extents.y * scaleFactor]; if (this._xCaret !== xCaret || this._yCaret !== yCaret) { [this._xCaret, this._yCaret] = [xCaret, yCaret];