From bda18888c054ec83ccf7a7f7121b9691e0b9bb97 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Thu, 6 Feb 2020 10:38:50 +0100 Subject: [PATCH] magnifier: Clip all crosshair lines at even distances If the crosshair is clipped so it doesn't cover the pointer cursor, the clip rectangle is skewed towards the bottom/right. This was made so to accomodate the default pointer, but the unevenness stays on other pointer cursors, and it makes the crosshair look odd on short crosshair length. Make all lines clip to an even distance from the center instead. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/984 --- js/ui/magnifier.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js index 8d2bf34a6..7250ce530 100644 --- a/js/ui/magnifier.js +++ b/js/ui/magnifier.js @@ -1809,12 +1809,10 @@ class Crosshairs extends Clutter.Actor { let clipWidth = this._clipSize[0]; let clipHeight = this._clipSize[1]; - // Note that clip, if present, is not centred on the cross hair - // intersection, but biased towards the top left. - let left = groupWidth / 2 - clipWidth * 0.25 - leftLength; - let right = groupWidth / 2 + clipWidth * 0.75; - let top = groupHeight / 2 - clipHeight * 0.25 - topLength - thickness / 2; - let bottom = groupHeight / 2 + clipHeight * 0.75 + thickness / 2; + let left = groupWidth / 2 - clipWidth / 2 - leftLength - thickness / 2; + let right = groupWidth / 2 + clipWidth / 2 + thickness / 2; + let top = groupHeight / 2 - clipHeight / 2 - topLength - thickness / 2; + let bottom = groupHeight / 2 + clipHeight / 2 + thickness / 2; this._horizLeftHair.set_position(left, (groupHeight - thickness) / 2); this._horizRightHair.set_position(right, (groupHeight - thickness) / 2); this._vertTopHair.set_position((groupWidth - thickness) / 2, top);