After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 651784 - transition=spin / transition=spin-text is broken in pinpoint with Clutter master
transition=spin / transition=spin-text is broken in pinpoint with Clutter master
Status: RESOLVED FIXED
Product: clutter
Classification: Platform
Component: general
git master
Other Linux
: Normal normal
: ---
Assigned To: clutter-maint
clutter-maint
Depends on:
Blocks:
 
 
Reported: 2011-06-03 14:04 UTC by Øyvind Kolås (pippin)
Modified: 2011-06-17 17:08 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
actor: Don't use propagated_one_redraw to determine effect dirty state (6.88 KB, patch)
2011-06-17 16:38 UTC, Neil Roberts
none Details | Review

Description Øyvind Kolås (pippin) 2011-06-03 14:04:18 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.
Comment 1 Neil Roberts 2011-06-17 16:38:45 UTC
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.
Comment 2 Neil Roberts 2011-06-17 17:08:41 UTC
Patch pushed as 87d55ff. Please reopen if it's still broken. Thanks.