js: Use implicit animations for animatable properties
We now have everything in place to replace Tweener for all animatable properties with implicit animations, which has the following benefits: - they run entirely in C, while Tweener requires context switches to JS each frame - they are more reliable, as Tweener only detects when an animation is overwritten with another Tween, while Clutter considers any property change https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/22
This commit is contained in:
@ -1654,19 +1654,23 @@ var Keyboard = class Keyboard {
|
||||
return;
|
||||
|
||||
if (show) {
|
||||
Tweener.addTween(windowActor,
|
||||
{ y: windowActor.y - deltaY,
|
||||
time: Layout.KEYBOARD_ANIMATION_TIME / 1000,
|
||||
transition: 'easeOutQuad',
|
||||
onComplete: this._windowSlideAnimationComplete,
|
||||
onCompleteParams: [window, -deltaY] });
|
||||
windowActor.ease({
|
||||
y: windowActor.y - deltaY,
|
||||
duration: Layout.KEYBOARD_ANIMATION_TIME,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
onComplete: () => {
|
||||
this._windowSlideAnimationComplete(window, -deltaY);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Tweener.addTween(windowActor,
|
||||
{ y: windowActor.y + deltaY,
|
||||
time: Layout.KEYBOARD_ANIMATION_TIME / 1000,
|
||||
transition: 'easeInQuad',
|
||||
onComplete: this._windowSlideAnimationComplete,
|
||||
onCompleteParams: [window, deltaY] });
|
||||
windowActor.ease({
|
||||
y: windowActor.y + deltaY,
|
||||
duration: Layout.KEYBOARD_ANIMATION_TIME,
|
||||
mode: Clutter.AnimationMode.EASE_IN_QUAD,
|
||||
onComplete: () => {
|
||||
this._windowSlideAnimationComplete(window, deltaY);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user