diff options
author | Lars Uebernickel <lars.uebernickel@canonical.com> | 2013-09-09 13:57:01 +0000 |
---|---|---|
committer | Tarmac <Unknown> | 2013-09-09 13:57:01 +0000 |
commit | a8d220ae32cd704cc2a65a540a87a570ad2ecc16 (patch) | |
tree | d3faad434f9999d4fdb5faf50d25a181eadc144f | |
parent | 246d7c9daec13ed936f80097b69b3631874f7d4c (diff) | |
parent | 8188fd2fac8516203b90e9da4872c0d8055cb310 (diff) | |
download | ayatana-indicator-sound-a8d220ae32cd704cc2a65a540a87a570ad2ecc16.tar.gz ayatana-indicator-sound-a8d220ae32cd704cc2a65a540a87a570ad2ecc16.tar.bz2 ayatana-indicator-sound-a8d220ae32cd704cc2a65a540a87a570ad2ecc16.zip |
Fixes bug #1221242 and #1204036 (make scrolling and middle clicking work on the sound indicator)
It soft-depends on lp:~larsu/libindicator/ng-add-scrolling. That means, this branch can be merged without problems, as it only adds an action and a few attributes on the root item. The bugs won't be fixed until both branches land, though.
Please the other merge request for a description of the new attributes. Fixes: https://bugs.launchpad.net/bugs/1204036.
Approved by Charles Kerr, PS Jenkins bot.
-rw-r--r-- | src/service.vala | 14 | ||||
-rw-r--r-- | src/sound-menu.vala | 2 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/service.vala b/src/service.vala index 4d64502..0651c0e 100644 --- a/src/service.vala +++ b/src/service.vala @@ -64,6 +64,7 @@ public class IndicatorSound.Service { const ActionEntry[] action_entries = { { "root", null, null, "@a{sv} {}", null }, + { "scroll", activate_scroll_action, "i", null, null }, { "desktop-settings", activate_desktop_settings, null, null, null }, { "phone-settings", activate_phone_settings, null, null, null }, }; @@ -76,6 +77,19 @@ public class IndicatorSound.Service { MediaPlayerList players; uint player_action_update_id; + void activate_scroll_action (SimpleAction action, Variant? param) { + const double volume_step_percentage = 0.06; + int delta = param.get_int32(); /* positive for up, negative for down */ + + double v = this.volume_control.get_volume () + volume_step_percentage * delta; + if (v > 1.0) + v = 1.0; + else if (v < 0.0) + v = 0.0; + + this.volume_control.set_volume (v); + } + void activate_desktop_settings (SimpleAction action, Variant? param) { var env = Environment.get_variable ("DESKTOP_SESSION"); string cmd; diff --git a/src/sound-menu.vala b/src/sound-menu.vala index 415a5be..e46f098 100644 --- a/src/sound-menu.vala +++ b/src/sound-menu.vala @@ -40,6 +40,8 @@ class SoundMenu: Object var root_item = new MenuItem (null, "indicator.root"); root_item.set_attribute ("x-canonical-type", "s", "com.canonical.indicator.root"); + root_item.set_attribute ("x-canonical-scroll-action", "s", "indicator.scroll"); + root_item.set_attribute ("x-canonical-secondary-action", "s", "indicator.mute"); root_item.set_submenu (this.menu); this.root = new Menu (); |