[gnome-shell] network: Always show primary icon when connected



commit b6cd548186ede4f42d793098b4984842fa6cc3ab
Author: Florian Müllner <fmuellner gnome org>
Date:   Thu May 19 18:22:02 2016 +0200

    network: Always show primary icon when connected
    
    The top bar's network menu only supports a subset of device types
    supported by NetworkManager. While not having lesser used options
    in the menu itself is perfectly reasonable, not showing any network
    icon at all in the top bar when the system is fully connected is
    weird.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=773890

 js/ui/status/network.js |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)
---
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
index c3af481..2c6d9d8 100644
--- a/js/ui/status/network.js
+++ b/js/ui/status/network.js
@@ -2084,13 +2084,24 @@ const NMApplet = new Lang.Class({
     },
 
     _updateIcon: function() {
-        if (!this._client.networking_enabled || !this._mainConnection) {
+        if (!this._client.networking_enabled) {
             this._primaryIndicator.visible = false;
         } else {
-            let dev = this._mainConnection._primaryDevice;
-            this._primaryIndicator.visible = (dev != null);
-            if (dev)
+            let dev = null;
+            if (this._mainConnection)
+                dev = this._mainConnection._primaryDevice;
+
+            let state = this._client.get_state();
+            let connected = state == NetworkManager.State.CONNECTED_GLOBAL;
+            this._primaryIndicator.visible = (dev != null) || connected;
+            if (dev) {
                 this._primaryIndicator.icon_name = dev.getIndicatorIcon();
+            } else if (connected) {
+                if (this._client.connectivity == NetworkManager.ConnectivityState.FULL)
+                    this._primaryIndicator.icon_name = 'network-wired-symbolic';
+                else
+                    this._primaryIndicator.icon_name = 'network-wired-no-route-symbolic';
+            }
         }
 
         this._vpnIndicator.icon_name = this._vpnSection.getIndicatorIcon();


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