From a9a54ba2a3b26b15c5dc3668ca8dd3d3e38ba9e6 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 28 Oct 2020 20:29:55 +0100 Subject: [PATCH] magnifier: Avoid cursor visibility changes on startup When initializing the shell, we create the magnifier, and (normally) let it disabled. This still toggles cursor visibility on, which is not right since there's other considerations to take during initialization. Only do this after actual changes to the magnifier state, so initialization is left unperturbed. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1486 --- js/ui/magnifier.js | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js index eae7bf464..036de7f75 100644 --- a/js/ui/magnifier.js +++ b/js/ui/magnifier.js @@ -158,20 +158,21 @@ var Magnifier = class Magnifier { zoomRegion.setActive(activate); }); - if (isActive != activate) { - if (activate) { - this._updateMouseSprite(); - this._cursorSpriteChangedId = - this._cursorTracker.connect('cursor-changed', - this._updateMouseSprite.bind(this)); - Meta.disable_unredirect_for_display(global.display); - this.startTrackingMouse(); - } else { - this._cursorTracker.disconnect(this._cursorSpriteChangedId); - this._mouseSprite.content.texture = null; - Meta.enable_unredirect_for_display(global.display); - this.stopTrackingMouse(); - } + if (isActive === activate) + return; + + if (activate) { + this._updateMouseSprite(); + this._cursorSpriteChangedId = + this._cursorTracker.connect('cursor-changed', + this._updateMouseSprite.bind(this)); + Meta.disable_unredirect_for_display(global.display); + this.startTrackingMouse(); + } else { + this._cursorTracker.disconnect(this._cursorSpriteChangedId); + this._mouseSprite.content.texture = null; + Meta.enable_unredirect_for_display(global.display); + this.stopTrackingMouse(); } // Make sure system mouse pointer is shown when all zoom regions are