[gnome-shell] NetworkMenu: fix logic for updating wifi icon



commit d7d5da03012332672de8089368cfff7f1434f8af
Author: Giovanni Campagna <gcampagna src gnome org>
Date:   Sat Oct 29 14:35:09 2011 +0200

    NetworkMenu: fix logic for updating wifi icon
    
    Previously, we connected to notify::strength only if there was
    already a signal connected, and the AP changed (thus, by induction,
    we never connected). As a result, the icon became stale and different
    from that shown inside the menu (which is correctly updated).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=650007

 js/ui/status/network.js |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
index 456b51f..aa9e234 100644
--- a/js/ui/status/network.js
+++ b/js/ui/status/network.js
@@ -2065,10 +2065,11 @@ NMApplet.prototype = {
                         }
                         this.setIcon('network-wireless-connected');
                     } else {
-                        if (this._accessPointUpdateId && this._activeAccessPoint != ap) {
-                            this._activeAccessPoint.disconnect(this._accessPointUpdateId);
+                        if (this._activeAccessPoint != ap) {
+                            if (this._accessPointUpdateId)
+                                this._activeAccessPoint.disconnect(this._accessPointUpdateId);
                             this._activeAccessPoint = ap;
-                            this._activeAccessPointUpdateId = ap.connect('notify::strength', Lang.bind(function() {
+                            this._activeAccessPointUpdateId = ap.connect('notify::strength', Lang.bind(this, function() {
                                 this.setIcon('network-wireless-signal-' + signalToIcon(ap.strength));
                             }));
                         }
@@ -2095,8 +2096,9 @@ NMApplet.prototype = {
                     break;
                 }
 
-                if (this._mobileUpdateId && this._mobileUpdateDevice != dev) {
-                    this._mobileUpdateDevice.disconnect(this._mobileUpdateId);
+                if (dev.mobileDevice != this._mobileUpdateDevice) {
+                    if (this._mobileUpdateId)
+                        this._mobileUpdateDevice.disconnect(this._mobileUpdateId);
                     this._mobileUpdateDevice = dev.mobileDevice;
                     this._mobileUpdateId = dev.mobileDevice.connect('notify::signal-quality', Lang.bind(this, function() {
                         this.setIcon('network-cellular-signal-' + signalToIcon(dev.mobileDevice.signal_quality));



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