volume: Only emit sound feedback after volume changes
gnome-settings-daemon doesn't play the volume change sound when the volume stayed the same (that is, it is already at its maximum or minimum). This looks like the right thing to do, so copy its behavior. https://gitlab.gnome.org/GNOME/gnome-shell/issues/53
This commit is contained in:
parent
5af8bf2788
commit
6c8eb1a18e
@ -113,6 +113,7 @@ var StreamSlider = class {
|
|||||||
let value = this._slider.value;
|
let value = this._slider.value;
|
||||||
let volume = value * this._control.get_vol_max_norm();
|
let volume = value * this._control.get_vol_max_norm();
|
||||||
let prevMuted = this._stream.is_muted;
|
let prevMuted = this._stream.is_muted;
|
||||||
|
let prevVolume = this._stream.volume;
|
||||||
if (volume < 1) {
|
if (volume < 1) {
|
||||||
this._stream.volume = 0;
|
this._stream.volume = 0;
|
||||||
if (!prevMuted)
|
if (!prevMuted)
|
||||||
@ -124,7 +125,8 @@ var StreamSlider = class {
|
|||||||
}
|
}
|
||||||
this._stream.push_volume();
|
this._stream.push_volume();
|
||||||
|
|
||||||
if (!this._notifyVolumeChangeId && !this._inDrag) {
|
let volumeChanged = this._stream.volume !== prevVolume;
|
||||||
|
if (volumeChanged && !this._notifyVolumeChangeId && !this._inDrag) {
|
||||||
this._notifyVolumeChangeId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 30, () => {
|
this._notifyVolumeChangeId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 30, () => {
|
||||||
this._notifyVolumeChange();
|
this._notifyVolumeChange();
|
||||||
this._notifyVolumeChangeId = 0;
|
this._notifyVolumeChangeId = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user