GNOME Bugzilla – Bug 651784
transition=spin / transition=spin-text is broken in pinpoint with Clutter master
Last modified: 2011-06-17 17:08:41 UTC
The transition spinning in the text "FIN" at the end of introduction.pin in pinpoint is skipped with Clutter master. At revision d6f110a4d26eb5e49e762bcbf51d36af894adcc9 this works properly, doing a bisect over the transition to use a separate cogl library seems to require in-depth familiarity with quirks of a build system being churned.
Created attachment 190127 [details] [review] actor: Don't use propagated_one_redraw to determine effect dirty state Previously ClutterActor was using priv->propagated_one_redraw to determine whether to pass CLUTTER_EFFECT_PAINT_ACTOR_DIRTY to the paint method of the effect. This isn't a good idea because the propagated_one_redraw flag is cleared whenever clutter_actor_paint is called, even if the actor isn't actually painted because of the zero opacity shortcut. Instead of this, ClutterActor now has a separate flag called is_dirty that gets set whenever queue_redraw_full is called or whenever the queue redraw signal is bubbled up from a child actor. The flag is only cleared in clutter_actor_paint if the effects are actually run. Therefore it will stay set even if the opacity is zero or if the parent actor decides not to paint the child. Previously there were two places set propagated_one_redraw to FALSE - once if the opacity is zero and once just before we emit the paint signal. Now that propagated_one_redraw is only used to determine whether to pass on the queue redraw signal it seems to make sense to just clear it in one place right at the start of clutter_actor_paint.
Patch pushed as 87d55ff. Please reopen if it's still broken. Thanks.