@@ -22,6 +22,7 @@ public class Network.Indicator : Wingpanel.Indicator {
2222
2323 NetworkMonitor network_monitor;
2424
25+ private RFKillManager rfkill;
2526 private Gtk . GestureMultiPress gesture_click;
2627 private SimpleAction airplane_action;
2728
@@ -65,19 +66,16 @@ public class Network.Indicator : Wingpanel.Indicator {
6566 });
6667 }
6768
68- airplane_action = new SimpleAction .stateful (" airplane-mode" , null , new Variant .boolean (popover_widget. nm_client. networking_get_enabled ()));
69+ rfkill = new RFKillManager ();
70+ rfkill. open ();
71+
72+ airplane_action = new SimpleAction .stateful (" airplane-mode" , null , new Variant .boolean (rfkill. airplane_mode));
6973 airplane_action. activate. connect (() = > {
70- popover_widget. nm_client. dbus_call. begin (
71- NM. DBUS_PATH , NM. DBUS_INTERFACE ,
72- " Enable" , new Variant .tuple ({new Variant .boolean (! popover_widget. nm_client. networking_get_enabled ())}),
73- null , - 1 , null , (obj, res) = > {
74- try {
75- ((NM . Client ) obj). dbus_set_property. end (res);
76- } catch (Error e) {
77- warning (" Error setting airplane mode: %s " , e. message);
78- }
79- }
80- );
74+ rfkill. airplane_mode = ! rfkill. airplane_mode;
75+ });
76+
77+ rfkill. device_changed. connect (() = > {
78+ airplane_action. set_state (new Variant .boolean (rfkill. airplane_mode));
8179 });
8280
8381 var action_group = (SimpleActionGroup ) popover_widget. get_action_group (" network" );
@@ -102,8 +100,6 @@ public class Network.Indicator : Wingpanel.Indicator {
102100
103101 display_widget. update_state (popover_widget. state, popover_widget. secure, popover_widget. extra_info);
104102
105- airplane_action. set_state (new Variant .boolean (! popover_widget. nm_client. networking_get_enabled ()));
106-
107103 update_tooltip ();
108104 }
109105
0 commit comments