From df3a50bae8d2711f2b8b279b918a8aa71cf175f0 Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Tue, 8 Oct 2013 23:34:33 +0200 Subject: [PATCH] AirplaneMode: don't show a "Turn off" item if HW enabled If airplane mode is enabled with an HW switch, we can't turn it off from the menu, so make the menu item insensitive and replace it with a helpful tip. https://bugzilla.gnome.org/show_bug.cgi?id=709685 --- js/ui/status/rfkill.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/js/ui/status/rfkill.js b/js/ui/status/rfkill.js index 487e05fec..2be7bf981 100644 --- a/js/ui/status/rfkill.js +++ b/js/ui/status/rfkill.js @@ -12,6 +12,7 @@ const OBJECT_PATH = '/org/gnome/SettingsDaemon/Rfkill'; const RfkillManagerInterface = ' \ \ \ + \ \ '; @@ -45,7 +46,7 @@ const Indicator = new Lang.Class({ this._item = new PopupMenu.PopupSubMenuMenuItem(_("Airplane Mode"), true); this._item.icon.icon_name = 'airplane-mode-symbolic'; this._item.status.text = _("On"); - this._item.menu.addAction(_("Turn Off"), Lang.bind(this, function() { + this._offItem = this._item.menu.addAction(_("Turn Off"), Lang.bind(this, function() { this._proxy.AirplaneMode = false; })); this._item.menu.addSettingsAction(_("Network Settings"), 'gnome-network-panel.desktop'); @@ -54,7 +55,15 @@ const Indicator = new Lang.Class({ _sync: function() { let airplaneMode = this._proxy.AirplaneMode; + let hwAirplaneMode = this._proxy.HardwareAirplaneMode; + this._indicator.visible = airplaneMode; this._item.actor.visible = airplaneMode; + this._offItem.setSensitive(!hwAirplaneMode); + + if (hwAirplaneMode) + this._offItem.label.text = _("Use hardware switch to turn off"); + else + this._offItem.label.text = _("Turn Off"); }, });