slider: Emit a 'drag-begin' signal when starting to drag
We are already emitting a 'drag-end' signal when no more dragging is happening, so it makes sense to emit a 'drag-begin' too when starting, so that apps interested in implementing different logic between those two events can easily do it without needing to deal with the underlying 'button-press-event' signal for the actor. https://bugzilla.gnome.org/show_bug.cgi?id=761208
This commit is contained in:
parent
346ffd14d7
commit
779b1ae8e5
@ -137,6 +137,10 @@ const Slider = new Lang.Class({
|
|||||||
this._motionId = this.actor.connect('motion-event', Lang.bind(this, this._motionEvent));
|
this._motionId = this.actor.connect('motion-event', Lang.bind(this, this._motionEvent));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We need to emit 'drag-begin' before moving the handle to make
|
||||||
|
// sure that no 'value-changed' signal is emitted before this one.
|
||||||
|
this.emit('drag-begin');
|
||||||
|
|
||||||
let absX, absY;
|
let absX, absY;
|
||||||
[absX, absY] = event.get_coords();
|
[absX, absY] = event.get_coords();
|
||||||
this._moveHandle(absX, absY);
|
this._moveHandle(absX, absY);
|
||||||
@ -224,6 +228,7 @@ const Slider = new Lang.Class({
|
|||||||
let delta = key == Clutter.KEY_Right ? 0.1 : -0.1;
|
let delta = key == Clutter.KEY_Right ? 0.1 : -0.1;
|
||||||
this._value = Math.max(0, Math.min(this._value + delta, 1));
|
this._value = Math.max(0, Math.min(this._value + delta, 1));
|
||||||
this.actor.queue_repaint();
|
this.actor.queue_repaint();
|
||||||
|
this.emit('drag-begin');
|
||||||
this.emit('value-changed', this._value);
|
this.emit('value-changed', this._value);
|
||||||
this.emit('drag-end');
|
this.emit('drag-end');
|
||||||
return Clutter.EVENT_STOP;
|
return Clutter.EVENT_STOP;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user