summaryrefslogtreecommitdiff
path: root/panels/network/cc-wifi-panel.c
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2018-07-22 19:56:57 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2018-07-23 12:56:00 +0000
commitb9da351a3dec660e0de3d7e1673383ccd6d2d017 (patch)
tree806a8f839d7a04f2b0a662ff435cb99765e9b1fa /panels/network/cc-wifi-panel.c
parent4ad1c5dea1239dadc8f381eb1caaf8a0f7e578ec (diff)
downloadgnome-control-center-b9da351a3dec660e0de3d7e1673383ccd6d2d017.tar.gz
wi-fi: Add empty state for Airplane Mode
According to the most recent mockups [1], when Airplane Mode is switched on, the Wi-Fi connection will be turned off and the Wi-Fi panel should show an empty state for Airplane Mode. This is currently not implemented in the codebase. This commit adds an Airplane Mode empty state for the Wi-Fi panel, and a small logic adjustment to show it under these circumstances.
Diffstat (limited to 'panels/network/cc-wifi-panel.c')
-rw-r--r--panels/network/cc-wifi-panel.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/panels/network/cc-wifi-panel.c b/panels/network/cc-wifi-panel.c
index fb77d2e1a..2448f87a2 100644
--- a/panels/network/cc-wifi-panel.c
+++ b/panels/network/cc-wifi-panel.c
@@ -183,17 +183,21 @@ static void
check_main_stack_page (CcWifiPanel *self)
{
const gchar *nm_version;
+ gboolean airplane_mode_active;
+ gboolean wireless_enabled;
nm_version = nm_client_get_version (self->client);
+ wireless_enabled = nm_client_wireless_get_enabled (self->client);
+ airplane_mode_active = gtk_switch_get_active (self->rfkill_switch);
if (!nm_version)
gtk_stack_set_visible_child_name (self->main_stack, "nm-not-running");
- else if (self->devices->len == 0 ||
- !nm_client_wireless_get_enabled (self->client))
+ else if (!wireless_enabled && airplane_mode_active)
+ gtk_stack_set_visible_child_name (self->main_stack, "airplane-mode");
+ else if (!wireless_enabled || self->devices->len == 0)
gtk_stack_set_visible_child_name (self->main_stack, "no-wifi-devices");
else
gtk_stack_set_visible_child_name (self->main_stack, "wifi-connections");
-
}
static void
@@ -247,6 +251,7 @@ sync_airplane_mode_switch (CcWifiPanel *self)
rfkill_switch_notify_activate_cb,
self);
gtk_switch_set_active (self->rfkill_switch, enabled);
+ check_main_stack_page (self);
g_signal_handlers_unblock_by_func (self->rfkill_switch,
rfkill_switch_notify_activate_cb,
self);