[gnome-shell] appDisplay: Use ::paint handler to set up spring animation
- From: Florian MĂźllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] appDisplay: Use ::paint handler to set up spring animation
- Date: Wed, 19 Jul 2017 08:50:32 +0000 (UTC)
commit c67eabaf62665d7e89471a35111ff66c96322a4c
Author: Florian MĂźllner <fmuellner gnome org>
Date: Fri Jun 2 04:22:36 2017 +0200
appDisplay: Use ::paint handler to set up spring animation
The animation needs the icons' final positions, so we currently defer
it to a ::notify::allocation handler; however as starting the animation
during an allocation cycle would trigger a Clutter warning, it is
further deferred to a MetaLater. While this usually works, it is possible
that the allocation is already valid when we connect the signal, in which
case the animation is triggered at a later unexpected time. Switch to
a more robust ::paint handler instead, which also allows us to get rid
of the double-delay.
https://bugzilla.gnome.org/show_bug.cgi?id=736148
js/ui/appDisplay.js | 15 ++++-----------
1 files changed, 4 insertions(+), 11 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index fe36ded..1cb8303 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -219,17 +219,10 @@ var BaseAppView = new Lang.Class({
}
if (animationDirection == IconGrid.AnimationDirection.IN) {
- let toAnimate = this._grid.actor.connect('notify::allocation', Lang.bind(this,
- function() {
- this._grid.actor.disconnect(toAnimate);
- // We need to hide the grid temporary to not flash it
- // for a frame
- this._grid.actor.opacity = 0;
- Meta.later_add(Meta.LaterType.BEFORE_REDRAW,
- Lang.bind(this, function() {
- this._doSpringAnimation(animationDirection)
- }));
- }));
+ let id = this._grid.actor.connect('paint', () => {
+ this._grid.actor.disconnect(id);
+ this._doSpringAnimation(animationDirection);
+ });
} else {
this._doSpringAnimation(animationDirection);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]