[gnome-shell] Magnifier: Restore crosshairs



commit 8d8d1cfdd620fb1328d274c484b6aa338a15c19c
Author: Magdalen Berns <m berns thismagpie com>
Date:   Sat Feb 8 23:47:40 2014 +0000

    Magnifier: Restore crosshairs
    
    This patch is to restore broken crosshairs so they may be used
    once more
    
    https://bugzilla.gnome.org/show_bug.cgi?id=723709
        magnifier.js

 js/ui/magnifier.js |  131 ++++++++++++++++++++++------------------------------
 1 files changed, 56 insertions(+), 75 deletions(-)
---
diff --git a/js/ui/magnifier.js b/js/ui/magnifier.js
index 2a6ac38..96c12b2 100644
--- a/js/ui/magnifier.js
+++ b/js/ui/magnifier.js
@@ -57,20 +57,6 @@ const Magnifier = new Lang.Class({
         // Magnifier is a manager of ZoomRegions.
         this._zoomRegions = [];
 
-        // Export to dbus.
-        magDBusService = new MagnifierDBus.ShellMagnifier();
-
-        let showAtLaunch = this._settingsInit();
-        this.setActive(showAtLaunch);
-    },
-
-    _initialize: function() {
-        if (this._initialized)
-            return;
-        this._initialized = true;
-
-        this._settingsInitLate();
-
         // Create small clutter tree for the magnified mouse.
         let cursorTracker = Meta.CursorTracker.get_for_screen(global.screen);
         this._mouseSprite = new Clutter.Texture();
@@ -86,11 +72,15 @@ const Magnifier = new Lang.Class({
 
         let aZoomRegion = new ZoomRegion(this, this._cursorRoot);
         this._zoomRegions.push(aZoomRegion);
-        this._settingsInitRegion(aZoomRegion);
+        let showAtLaunch = this._settingsInit(aZoomRegion);
         aZoomRegion.scrollContentsTo(this.xMouse, this.yMouse);
 
         cursorTracker.connect('cursor-changed', Lang.bind(this, this._updateMouseSprite));
         this._cursorTracker = cursorTracker;
+
+        // Export to dbus.
+        magDBusService = new MagnifierDBus.ShellMagnifier();
+        this.setActive(showAtLaunch);
     },
 
     /**
@@ -115,12 +105,6 @@ const Magnifier = new Lang.Class({
      * @activate:   Boolean to activate or de-activate the magnifier.
      */
     setActive: function(activate) {
-        if (activate == this.isActive())
-            return;
-
-        if (activate)
-            this._initialize();
-
         this._zoomRegions.forEach (function(zoomRegion, index, array) {
             zoomRegion.setActive(activate);
         });
@@ -452,68 +436,64 @@ const Magnifier = new Lang.Class({
         this._mouseSprite.set_anchor_point(xHot, yHot);
     },
 
-    _settingsInitRegion: function(zoomRegion) {
-        // Mag factor is accurate to two decimal places.
-        let aPref = parseFloat(this._settings.get_double(MAG_FACTOR_KEY).toFixed(2));
-        if (aPref != 0.0)
-            zoomRegion.setMagFactor(aPref, aPref);
-
-        aPref = this._settings.get_enum(SCREEN_POSITION_KEY);
-        if (aPref)
-            zoomRegion.setScreenPosition(aPref);
-
-        zoomRegion.setLensMode(this._settings.get_boolean(LENS_MODE_KEY));
-        zoomRegion.setClampScrollingAtEdges(!this._settings.get_boolean(CLAMP_MODE_KEY));
-
-        aPref = this._settings.get_enum(MOUSE_TRACKING_KEY);
-        if (aPref)
-            zoomRegion.setMouseTrackingMode(aPref);
-
-        aPref = this._settings.get_enum(FOCUS_TRACKING_KEY);
-        if (aPref)
-            zoomRegion.setFocusTrackingMode(aPref);
-
-        aPref = this._settings.get_enum(CARET_TRACKING_KEY);
-        if (aPref)
-            zoomRegion.setCaretTrackingMode(aPref);
-
-        aPref = this._settings.get_boolean(INVERT_LIGHTNESS_KEY);
-        if (aPref)
-            zoomRegion.setInvertLightness(aPref);
-
-        aPref = this._settings.get_double(COLOR_SATURATION_KEY);
-        if (aPref)
-            zoomRegion.setColorSaturation(aPref);
-
-        let bc = {};
-        bc.r = this._settings.get_double(BRIGHT_RED_KEY);
-        bc.g = this._settings.get_double(BRIGHT_GREEN_KEY);
-        bc.b = this._settings.get_double(BRIGHT_BLUE_KEY);
-        zoomRegion.setBrightness(bc);
-
-        bc.r = this._settings.get_double(CONTRAST_RED_KEY);
-        bc.g = this._settings.get_double(CONTRAST_GREEN_KEY);
-        bc.b = this._settings.get_double(CONTRAST_BLUE_KEY);
-        zoomRegion.setContrast(bc);
-    },
-
-    _settingsInit: function() {
+    _settingsInit: function(zoomRegion) {
         this._appSettings = new Gio.Settings({ schema: APPLICATIONS_SCHEMA });
         this._settings = new Gio.Settings({ schema: MAGNIFIER_SCHEMA });
 
-        this._appSettings.connect('changed::' + SHOW_KEY, Lang.bind(this, function() {
-            let active = this._appSettings.get_boolean(SHOW_KEY);
-            this.setActive(active);
-        }));
-
-        return this._appSettings.get_boolean(SHOW_KEY);
-    },
+        if (zoomRegion) {
+            // Mag factor is accurate to two decimal places.
+            let aPref = parseFloat(this._settings.get_double(MAG_FACTOR_KEY).toFixed(2));
+            if (aPref != 0.0)
+                zoomRegion.setMagFactor(aPref, aPref);
+
+            aPref = this._settings.get_enum(SCREEN_POSITION_KEY);
+            if (aPref)
+                zoomRegion.setScreenPosition(aPref);
+
+            zoomRegion.setLensMode(this._settings.get_boolean(LENS_MODE_KEY));
+            zoomRegion.setClampScrollingAtEdges(!this._settings.get_boolean(CLAMP_MODE_KEY));
+
+            aPref = this._settings.get_enum(MOUSE_TRACKING_KEY);
+            if (aPref)
+                zoomRegion.setMouseTrackingMode(aPref);
+
+            aPref = this._settings.get_enum(FOCUS_TRACKING_KEY);
+            if (aPref)
+                zoomRegion.setFocusTrackingMode(aPref);
+
+            aPref = this._settings.get_enum(CARET_TRACKING_KEY);
+            if (aPref)
+                zoomRegion.setCaretTrackingMode(aPref);
+
+            aPref = this._settings.get_boolean(INVERT_LIGHTNESS_KEY);
+            if (aPref)
+                zoomRegion.setInvertLightness(aPref);
+
+            aPref = this._settings.get_double(COLOR_SATURATION_KEY);
+            if (aPref)
+                zoomRegion.setColorSaturation(aPref);
+
+            let bc = {};
+            bc.r = this._settings.get_double(BRIGHT_RED_KEY);
+            bc.g = this._settings.get_double(BRIGHT_GREEN_KEY);
+            bc.b = this._settings.get_double(BRIGHT_BLUE_KEY);
+            zoomRegion.setBrightness(bc);
+
+            bc.r = this._settings.get_double(CONTRAST_RED_KEY);
+            bc.g = this._settings.get_double(CONTRAST_GREEN_KEY);
+            bc.b = this._settings.get_double(CONTRAST_BLUE_KEY);
+            zoomRegion.setContrast(bc);
+        }
 
-    _settingsInitLate: function() {
         let showCrosshairs = this._settings.get_boolean(SHOW_CROSS_HAIRS_KEY);
         this.addCrosshairs();
         this.setCrosshairsVisible(showCrosshairs);
 
+        this._appSettings.connect('changed::' + SHOW_KEY,
+                                  Lang.bind(this, function() {
+            this.setActive(this._appSettings.get_boolean(SHOW_KEY));
+        }));
+
         this._settings.connect('changed::' + SCREEN_POSITION_KEY,
                                Lang.bind(this, this._updateScreenPosition));
         this._settings.connect('changed::' + MAG_FACTOR_KEY,
@@ -577,6 +557,7 @@ const Magnifier = new Lang.Class({
                                Lang.bind(this, function() {
             this.setCrosshairsClip(this._settings.get_boolean(CROSS_HAIRS_CLIP_KEY));
         }));
+        return this._appSettings.get_boolean(SHOW_KEY);
    },
 
     _updateScreenPosition: function() {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]