[gnome-shell] volumeIndicator: Add mousewheel support
- From: Adel Gadllah <agadllah src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] volumeIndicator: Add mousewheel support
- Date: Wed, 20 Oct 2010 20:06:05 +0000 (UTC)
commit 10e59c08407ab417f43c88484332ef3c728c4418
Author: Adel Gadllah <adel gadllah gmail com>
Date: Wed Oct 20 21:53:23 2010 +0200
volumeIndicator: Add mousewheel support
Allow changing the volume by moving the mousewheel over the volume indicato
to restore the old gnome-volume-control-applet behaviour.
https://bugzilla.gnome.org/show_bug.cgi?id=632733
js/ui/status/volume.js | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/status/volume.js b/js/ui/status/volume.js
index 8753c71..15cc1f1 100644
--- a/js/ui/status/volume.js
+++ b/js/ui/status/volume.js
@@ -1,5 +1,6 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
+const Clutter = imports.gi.Clutter;
const DBus = imports.dbus;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
@@ -15,6 +16,7 @@ const Gettext = imports.gettext.domain('gnome-shell');
const _ = Gettext.gettext;
const VOLUME_MAX = 65536.0; /* PA_VOLUME_NORM */
+const VOLUME_ADJUSTMENT_STEP = 0.05; /* Volume adjustment step in % */
function Indicator() {
this._init.apply(this, arguments);
@@ -64,9 +66,24 @@ Indicator.prototype = {
p.run();
});
+ this.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent));
this._control.open();
},
+ _onScrollEvent: function(actor, event) {
+ let direction = event.get_scroll_direction();
+ let currentVolume = this._output.volume;
+
+ if (direction == Clutter.ScrollDirection.DOWN) {
+ this._output.volume = Math.max(0, currentVolume - VOLUME_MAX * VOLUME_ADJUSTMENT_STEP);
+ this._output.push_volume();
+ }
+ else if (direction == Clutter.ScrollDirection.UP) {
+ this._output.volume = Math.min(VOLUME_MAX, currentVolume + VOLUME_MAX * VOLUME_ADJUSTMENT_STEP);
+ this._output.push_volume();
+ }
+ },
+
_onControlReady: function() {
this._readOutput();
this._readInput();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]