1
0
Fork 0
mutter-performance-source/src/include
Owen W. Taylor 3508c4aa87 Use "later functions" to fix priority problems with Clutter redraw
There was a problem where if, for example, a restack was triggered
out of a clutter event handler, then after Clutter processed the
events, it would proceed immmediately on to repaint the stage without
ever returning control to the GLib main loop. So even though we
had an idle handler installed with a higher priority than the
Clutter stage repainting the clutter stage repainting would happen
first and we'd get a wrong frame.

Fix this by introducing the idea of "later functions", which abstract
the idea of "doing something later" away from g_idle_add() and use
a combination of GLib idle functions and Clutter "repaint functions"
to get our callbacks triggered at the right time, even when they
are installed from a clutter event handler.

https://bugzilla.gnome.org/show_bug.cgi?id=596334

This also resolve a FIXME where MUTTER_PRIORITY_BEFORE_REDRAW
could starve stage repainting.
2009-10-02 15:50:16 -04:00
..
all-keybindings.h Fix custom-alt-tabs for single-handling of key events 2009-08-26 12:26:58 -04:00
atomnames.h Export a _GNOME_WM_KEYBINDINGS property 2009-09-04 18:25:39 -04:00
boxes.h Refer to monitors as "monitors" rather than "xineramas" 2009-08-31 14:39:48 -04:00
common.h Use "later functions" to fix priority problems with Clutter redraw 2009-10-02 15:50:16 -04:00
compositor-mutter.h Separate source and header files for MutterWindow 2009-07-05 23:56:51 +01:00
compositor.h Simplify relationship between mapping and visibility 2009-07-06 00:16:23 +01:00
core.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
display.h Add meta_display_get_grab_op() 2009-08-28 12:27:46 -04:00
errors.h Remove meta_errors_register_foreign_display() 2009-08-13 07:38:08 -04:00
frame.h src/include/frame.h src/include/display.h src/include/xprops.h 2008-05-19 00:00:09 +00:00
group.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
keybindings.h Use GDestroyNotify instead of custom type, for better introspectability 2009-03-25 10:50:40 -04:00
main.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
mutter-plugin.h Add a modal mode for plugins 2009-08-26 12:26:58 -04:00
mutter-window.h Separate source and header files for MutterWindow 2009-07-05 23:56:51 +01:00
prefs.h Remove wireframe mode and old effects framework 2009-06-30 09:35:12 -04:00
resizepopup.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
screen.h Fix broken META_IS_SCREEN macro 2009-09-01 09:38:40 -04:00
tabpopup.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
types.h Expose keybindings data types; add user_data parameter the handler signature. 2009-01-29 14:53:03 +00:00
ui.h Add better tracking of real stacking order 2009-06-29 23:04:59 -04:00
util.h Use "later functions" to fix priority problems with Clutter redraw 2009-10-02 15:50:16 -04:00
window.h Add meta_window_get_stable_sequence 2009-09-22 12:43:35 -04:00
workspace.h Refer to monitors as "monitors" rather than "xineramas" 2009-08-31 14:39:48 -04:00
xprops.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00