aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLars Uebernickel <lars.uebernickel@canonical.com>2013-09-09 13:57:01 +0000
committerTarmac <Unknown>2013-09-09 13:57:01 +0000
commita8d220ae32cd704cc2a65a540a87a570ad2ecc16 (patch)
treed3faad434f9999d4fdb5faf50d25a181eadc144f /src
parent246d7c9daec13ed936f80097b69b3631874f7d4c (diff)
parent8188fd2fac8516203b90e9da4872c0d8055cb310 (diff)
downloadayatana-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.
Diffstat (limited to 'src')
-rw-r--r--src/service.vala14
-rw-r--r--src/sound-menu.vala2
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 ();