GNOME Bugzilla – Bug 700051
"Zoom In" doesn't animate when called from menu
Last modified: 2013-07-03 09:23:07 UTC
R/T buttons will animate the transition between zoomed in and zoomed out. Doing the same thing from the cogwheel menu will cause the "set_rotation_internal()" function to be called with animate == TRUE, but when the menu is dismissed, _allocate() will be called, which will call set_rotation_internal() with animate == FALSE (short-circuiting the animation).
What's the cogwheel menu? I can't reproduce from the totem menubar (ie View->Rotate Clockwise). What's the GTK+ version you've reproduced with?
(In reply to comment #1) > What's the cogwheel menu? Top-right in totem master, when in the player view. > I can't reproduce from the totem menubar (ie View->Rotate Clockwise). That menu doesn't exist any more on master. > What's the GTK+ version you've reproduced with? master.
My quick first investigation shows that every time the duration/elapsed time is updated, we basically relayout the entire embedded ClutterStage. And that stops any animation. I haven't figured out why (especially independent parts like the video), but I'll continue digging.
Created attachment 248249 [details] [review] backend: prevent excessive relayouts stopping animations
Review of attachment 248249 [details] [review]: Looks good but could you go into more details as to how you're fixing the problem in the commit message? Something like "We're now using a separate layout to ensure that all the actors (video, logo, etc.) get to use the full size of the widget" Also mention the original issue (rotate animation not working) being fixed.
Pushed a simplified version of the patch to master with better comments.