diff options
author | Robert Tari <robert@tari.in> | 2022-09-03 01:51:11 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2022-09-08 20:41:13 +0200 |
commit | 6d68d25b821cc7e717c9fa134f5b1204e13ecf65 (patch) | |
tree | c8483aa056cad3cd328903d719f7fe4e87b0bfce | |
parent | 23d48f5a9baddfa248ace0675e67a03ae584a128 (diff) | |
download | ayatana-indicator-sound-6d68d25b821cc7e717c9fa134f5b1204e13ecf65.tar.gz ayatana-indicator-sound-6d68d25b821cc7e717c9fa134f5b1204e13ecf65.tar.bz2 ayatana-indicator-sound-6d68d25b821cc7e717c9fa134f5b1204e13ecf65.zip |
Convert Mute menuitem to switch
fixes https://github.com/AyatanaIndicators/ayatana-indicator-sound/issues/83
-rw-r--r-- | src/service.vala | 22 | ||||
-rw-r--r-- | src/sound-menu.vala | 15 |
2 files changed, 30 insertions, 7 deletions
diff --git a/src/service.vala b/src/service.vala index c2c425c..c437475 100644 --- a/src/service.vala +++ b/src/service.vala @@ -1,6 +1,6 @@ /* * Copyright 2013 Canonical Ltd. - * Copyright 2021 Robert Tari + * Copyright 2021-2022 Robert Tari * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -362,11 +362,23 @@ public class IndicatorSound.Service: Object { SimpleAction mute_action; Action create_mute_action () { - mute_action = new SimpleAction.stateful ("mute", null, new Variant.boolean (this.volume_control.mute)); - mute_action.activate.connect ( (action, param) => { - action.change_state (new Variant.boolean (!action.get_state ().get_boolean ())); - }); + if (AyatanaCommon.utils_is_lomiri()) + { + mute_action = new SimpleAction.stateful ("mute", null, new Variant.boolean (this.volume_control.mute)); + + mute_action.activate.connect ( (action, param) => { + action.change_state (new Variant.boolean (!action.get_state ().get_boolean ())); + }); + } + else + { + mute_action = new SimpleAction.stateful ("mute", VariantType.BOOLEAN, new Variant.boolean (this.volume_control.mute)); + + mute_action.activate.connect ((action, param) => { + action.change_state (param); + }); + } mute_action.change_state.connect ( (action, val) => { volume_control.set_mute (val.get_boolean ()); diff --git a/src/sound-menu.vala b/src/sound-menu.vala index fe2b7ff..338f7c1 100644 --- a/src/sound-menu.vala +++ b/src/sound-menu.vala @@ -1,6 +1,6 @@ /* * Copyright 2013 Canonical Ltd. - * Copyright 2021 Robert Tari + * Copyright 2021-2022 Robert Tari * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -49,7 +49,18 @@ public class SoundMenu: Object this.volume_section = new Menu (); if ((flags & DisplayFlags.SHOW_MUTE) != 0) - volume_section.append (_("Mute"), "indicator.mute"); + { + if (AyatanaCommon.utils_is_lomiri()) + { + volume_section.append (_("Mute"), "indicator.mute"); + } + else + { + var item = new MenuItem (_("Mute"), "indicator.mute(true)"); + item.set_attribute ("x-ayatana-type", "s", "org.ayatana.indicator.switch"); + volume_section.append_item (item); + } + } if ((flags & DisplayFlags.SHOW_SILENT_MODE) != 0) { var item = new MenuItem(_("Silent Mode"), "indicator.silent-mode(true)"); item.set_attribute("x-ayatana-type", "s", "org.ayatana.indicator.switch"); |