[gnome-shell] volume: Put canberra sound events on output streams only



commit 1964b546278277bbcde187a1b672ae7893b38eed
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Fri Dec 21 13:23:39 2012 -0500

    volume: Put canberra sound events on output streams only
    
    This seems to be an oversight in the original volume menu code
    that slipped in by accident.

 js/ui/status/volume.js |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)
---
diff --git a/js/ui/status/volume.js b/js/ui/status/volume.js
index b08f3d6..6376889 100644
--- a/js/ui/status/volume.js
+++ b/js/ui/status/volume.js
@@ -38,7 +38,6 @@ const StreamSlider = new Lang.Class({
         this._title = new PopupMenu.PopupMenuItem(title, { reactive: false });
         this._slider = new PopupMenu.PopupSliderMenuItem(0);
         this._slider.connect('value-changed', Lang.bind(this, this._sliderChanged));
-        this._slider.connect('drag-end', Lang.bind(this, this._notifyVolumeChange));
 
         this.item.addMenuItem(this._title);
         this.item.addMenuItem(this._slider);
@@ -117,11 +116,6 @@ const StreamSlider = new Lang.Class({
         this._stream.push_volume();
     },
 
-    _notifyVolumeChange: function() {
-        global.cancel_theme_sound(VOLUME_NOTIFY_ID);
-        global.play_theme_sound(VOLUME_NOTIFY_ID, 'audio-volume-change');
-    },
-
     _updateVolume: function() {
         let muted = this._stream.is_muted;
         this._slider.setValue(muted ? 0 : (this._stream.volume / this._control.get_vol_max_norm()));
@@ -151,6 +145,11 @@ const OutputStreamSlider = new Lang.Class({
     Name: 'OutputStreamSlider',
     Extends: StreamSlider,
 
+    _init: function(control, title) {
+        this.parent(control, title);
+        this._slider.connect('drag-end', Lang.bind(this, this._notifyVolumeChange));
+    },
+
     _connectStream: function(stream) {
         this.parent(stream);
         this._portChangedId = stream.connect('notify::port', Lang.bind(this, this._portChanged));
@@ -179,6 +178,11 @@ const OutputStreamSlider = new Lang.Class({
         this._portChangedId = 0;
     },
 
+    _notifyVolumeChange: function() {
+        global.cancel_theme_sound(VOLUME_NOTIFY_ID);
+        global.play_theme_sound(VOLUME_NOTIFY_ID, 'audio-volume-change');
+    },
+
     _portChanged: function() {
         let hasHeadphones = this._findHeadphones(this._stream);
         if (hasHeadphones != this._hasHeadphones) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]