diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index fd4b9280c..6bcc994a9 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -636,7 +636,7 @@ const PopupSliderMenuItem = new Lang.Class({ return true; }, - _onScrollEvent: function (actor, event) { + scroll: function(event) { let direction = event.get_scroll_direction(); let delta; @@ -655,10 +655,15 @@ const PopupSliderMenuItem = new Lang.Class({ } this._value = Math.min(Math.max(0, this._value + delta), 1); + this._slider.queue_repaint(); this.emit('value-changed', this._value); }, + _onScrollEvent: function(actor, event) { + this.scroll(event); + }, + _motionEvent: function(actor, event) { let absX, absY; [absX, absY] = event.get_coords(); diff --git a/js/ui/status/volume.js b/js/ui/status/volume.js index 99b003b6f..faccf8458 100644 --- a/js/ui/status/volume.js +++ b/js/ui/status/volume.js @@ -69,26 +69,8 @@ const VolumeMenu = new Lang.Class({ this._onControlStateChanged(); }, - scroll: function(direction) { - let currentVolume = this._output.volume; - - if (direction == Clutter.ScrollDirection.DOWN) { - let prev_muted = this._output.is_muted; - this._output.volume = Math.max(0, currentVolume - this._volumeMax * VOLUME_ADJUSTMENT_STEP); - if (this._output.volume < 1) { - this._output.volume = 0; - if (!prev_muted) - this._output.change_is_muted(true); - } - this._output.push_volume(); - } - else if (direction == Clutter.ScrollDirection.UP) { - this._output.volume = Math.min(this._volumeMax, currentVolume + this._volumeMax * VOLUME_ADJUSTMENT_STEP); - this._output.change_is_muted(false); - this._output.push_volume(); - } - - this._notifyVolumeChange(); + scroll: function(event) { + this._outputSlider.scroll(event); }, _onControlStateChanged: function() { @@ -279,6 +261,6 @@ const Indicator = new Lang.Class({ }, _onScrollEvent: function(actor, event) { - this._volumeMenu.scroll(event.get_scroll_direction()); + this._volumeMenu.scroll(event); } });