slider: Stop emulating drags in key handling

Emitting ::drag-end after changing the slider value via arrow keys
was a cheap way to make the sound feedback work for keyboard input.
But now that the volume indicator plays the sound on ::value-changed
as well, we can stop doing that - after all, key presses aren't drags.

Besides that, this will make the limiting of feedback to actual volume
changes from the previous commit work for key events as well.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/53
This commit is contained in:
Florian Müllner 2018-02-26 20:57:10 +01:00
parent 6c8eb1a18e
commit a8005e3c30

View File

@ -181,9 +181,7 @@ var Slider = GObject.registerClass({
let key = keyPressEvent.keyval; let key = keyPressEvent.keyval;
if (key == Clutter.KEY_Right || key == Clutter.KEY_Left) { if (key == Clutter.KEY_Right || key == Clutter.KEY_Left) {
let delta = key == Clutter.KEY_Right ? 0.1 : -0.1; let delta = key == Clutter.KEY_Right ? 0.1 : -0.1;
this.emit('drag-begin');
this.value = Math.max(0, Math.min(this._value + delta, this._maxValue)); this.value = Math.max(0, Math.min(this._value + delta, this._maxValue));
this.emit('drag-end');
return Clutter.EVENT_STOP; return Clutter.EVENT_STOP;
} }
return Clutter.EVENT_PROPAGATE; return Clutter.EVENT_PROPAGATE;