GNOME Bugzilla – Bug 695006
Application contents don't repaint with mutter master
Last modified: 2013-03-02 17:26:09 UTC
With mutter from today's git master, applications don't seem to repaint their contents anymore. Reverting these two commits fixes it: commit e4269002ce18ea5262db28f983ccdd21039ca7fc Author: Adel Gadllah <adel.gadllah@gmail.com> Date: Sat Mar 2 13:06:30 2013 +0100 meta-background-group: Report a paint volume We never paint outside of the allocation so we can simply use clutter_paint_volume_set_from_allocation. https://bugzilla.gnome.org/show_bug.cgi?id=694988 commit 4f2bb583bf8c7f7e37f74ba09006a17c6974d792 Author: Adel Gadllah <adel.gadllah@gmail.com> Date: Sat Mar 2 13:15:23 2013 +0100 compositor: Don't connect to the stage's paint signal Doing so causes useless full stage redraws and breaks culling as clutter cannot know how the signal handler affects painting. So use clutter_threads_add_repaint_func_full with the CLUTTER_REPAINT_FLAGS_POST_PAINT flag instead. https://bugzilla.gnome.org/show_bug.cgi?id=694988
Created attachment 237822 [details] [review] compositor: Make sure we always call the post_paint handlers Commit 4f2bb583bf8c7f started to use a clutter_threads_add_repaint_func_full callback instead of connecting to the stage's paint signal. The callback has to return TRUE if it wants to be called again, so fix that as we want to call it for every frame (otherwise apps supporting the WM SYNC protocol will stop drawing).
Created attachment 237823 [details] [review] compositor: Make sure we always call the post_paint handlers Commit 4f2bb583bf8c7f started to use a clutter_threads_add_repaint_func_full callback instead of connecting to the stage's paint signal. The callback has to return TRUE if it wants to be called again, so fix that as we want to call it for every frame (otherwise apps supporting the WM SYNC protocol will stop drawing).
Created attachment 237824 [details] [review] shell-global: Fix regression from 071a4e5f83db6a0e0ab01a3 The clutter_threads_add_repaint_func_full need to return TRUE otherwise they will be only called once.
(In reply to comment #0) > With mutter from today's git master, applications don't seem to repaint their > contents anymore. > Reverting these two commits fixes it: Caused by the second one (see patch) ... didn't notice as only WM SYNC supporting apps are affected and I am still on F18. Can reproduce with gtk3-demo from jhbuild though. (fixed with the attached patch).
Review of attachment 237823 [details] [review]: ++
Review of attachment 237824 [details] [review]: ++
Comment on attachment 237823 [details] [review] compositor: Make sure we always call the post_paint handlers Attachment 237823 [details] pushed as 436d3ff - compositor: Make sure we always call the post_paint handlers
Attachment 237824 [details] pushed as 95ec8ef - shell-global: Fix regression from 071a4e5f83db6a0e0ab01a3