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



commit 1bccc9a2d637bebd51f38541c362db4192447e50
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 9f4293a..0bb53bb 100644
--- a/js/ui/status/network.js
+++ b/js/ui/status/network.js
@@ -2020,13 +2020,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]