Make the Stage redraw cycle part of GTK+
Make the Stage redraw cycle part of GTK+

Right now, the Stage is redrawn every time it requires, in parallel
to the GTK+ paint cycle. This generates a certain degree of collision,
as the embedding widget might request a redraw while a Stage redraw
is in progress, thus leading to a skipped frame.

The embedding toolkit should "drive" the Clutter paint cycle, instead.

The ClutterStage::queue-redraw signal was added exactly for this use
case. The GtkClutterEmbed widget should intercept every queued redraw
of the embedded stage, stop it and queue a redraw on the widget itself,
thus making it play along with the rest of the GTK+ paint cycle
machinery. The stage is only painted after the widget receives an
expose event, ensuring that the Clutter scenegraph is repainted only
when needed.

GNOME/clutter-gtk,Distrotech/clutter-gtk,Distrotech/clutter-gtk,Distrotech/clutter-gtk,GNOME/clutter-gtk