mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-17 23:24:51 +00:00
pointerA11yTimeout: Add a zoom out+fade animation on success
We currently don't indicate success of the pie timer at all, let's do this by animating the circle's scale and fading it out at the same time. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/688
This commit is contained in:
parent
20fc4b4490
commit
5d0c403f1d
1 changed files with 18 additions and 1 deletions
|
|
@ -3,6 +3,8 @@ const { Clutter, GLib, GObject, Meta, St } = imports.gi;
|
|||
const Main = imports.ui.main;
|
||||
const Cairo = imports.cairo;
|
||||
|
||||
const SUCCESS_ZOOM_OUT_DURATION = 150;
|
||||
|
||||
var PieTimer = GObject.registerClass({
|
||||
Properties: {
|
||||
'angle': GObject.ParamSpec.double(
|
||||
|
|
@ -19,6 +21,8 @@ var PieTimer = GObject.registerClass({
|
|||
can_focus: false,
|
||||
reactive: false
|
||||
});
|
||||
|
||||
this.set_pivot_point(0.5, 0.5);
|
||||
}
|
||||
|
||||
get angle() {
|
||||
|
|
@ -77,6 +81,8 @@ var PieTimer = GObject.registerClass({
|
|||
this.opacity = 0;
|
||||
this.x = x - this.width / 2;
|
||||
this.y = y - this.height / 2;
|
||||
this.scale_y = 1;
|
||||
this.scale_x = 1;
|
||||
this._angle = 0;
|
||||
|
||||
this.show();
|
||||
|
|
@ -91,7 +97,18 @@ var PieTimer = GObject.registerClass({
|
|||
this.ease_property('angle', 2 * Math.PI, {
|
||||
duration,
|
||||
mode: Clutter.AnimationMode.LINEAR,
|
||||
onComplete: () => this.stop()
|
||||
onComplete: this._onTransitionComplete.bind(this)
|
||||
});
|
||||
}
|
||||
|
||||
_onTransitionComplete() {
|
||||
this.ease({
|
||||
scale_x: 2,
|
||||
scale_y: 2,
|
||||
opacity: 0,
|
||||
duration: SUCCESS_ZOOM_OUT_DURATION,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
onStopped: () => this.hide()
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue