[gnome-control-center] Split wifi device handling conditions



commit 6c63c3980e62530fd04c1d8e73c00517e1fd0d2e
Author: Jamison Lofthouse <jamison lofthouse gmail com>
Date:   Wed Jun 24 12:10:02 2020 -0400

    Split wifi device handling conditions

 panels/network/cc-wifi-panel.c | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)
---
diff --git a/panels/network/cc-wifi-panel.c b/panels/network/cc-wifi-panel.c
index 126adda06..e17610735 100644
--- a/panels/network/cc-wifi-panel.c
+++ b/panels/network/cc-wifi-panel.c
@@ -148,10 +148,6 @@ add_wifi_device (CcWifiPanel *self,
   GtkWidget *header_widget;
   NetDeviceWifi *net_device;
 
-  /* Only manage Wi-Fi devices */
-  if (!NM_IS_DEVICE_WIFI (device) || !nm_device_get_managed (device))
-    return;
-
   /* Create the NetDevice */
   net_device = net_device_wifi_new (CC_PANEL (self),
                                     self->client,
@@ -182,9 +178,6 @@ remove_wifi_device (CcWifiPanel *self,
   const gchar *id;
   guint i;
 
-  if (!NM_IS_DEVICE_WIFI (device) || !nm_device_get_managed (device))
-    return;
-
   id = nm_device_get_udi (device);
 
   /* Destroy all stack pages related to this device */
@@ -243,7 +236,14 @@ load_wifi_devices (CcWifiPanel *self)
   if (devices)
     {
       for (i = 0; i < devices->len; i++)
-        add_wifi_device (self, g_ptr_array_index (devices, i));
+        {
+          NMDevice *device;
+
+          device = g_ptr_array_index (devices, i);
+          if (!NM_IS_DEVICE_WIFI (device) || !nm_device_get_managed (device))
+            continue;
+          add_wifi_device (self, device);
+        }
     }
 
   check_main_stack_page (self);
@@ -455,6 +455,9 @@ verify_argv (CcWifiPanel  *self,
 static void
 device_added_cb (CcWifiPanel *self, NMDevice *device)
 {
+  if (!NM_IS_DEVICE_WIFI (device) || !nm_device_get_managed (device))
+    return;
+
   add_wifi_device (self, device);
   check_main_stack_page (self);
 }
@@ -462,6 +465,14 @@ device_added_cb (CcWifiPanel *self, NMDevice *device)
 static void
 device_removed_cb (CcWifiPanel *self, NMDevice *device)
 {
+  if (!NM_IS_DEVICE_WIFI (device))
+    return;
+
+  id = nm_device_get_udi (device);
+  /* Don't remove a device that has already been removed */
+  if (!gtk_stack_get_child_by_name (self->stack, id))
+    return;
+
   remove_wifi_device (self, device);
   check_main_stack_page (self);
 }


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