diff --git a/ChangeLog b/ChangeLog index cf9d48a02..55535c9e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2007-07-06 Matthew Allum + + * clutter/clutter-box.c: (clutter_box_pick): + Call clutter_box_paint rather than actor paint method avoiding + infinte loop (Fixes test-boxes crasher). + + * clutter/glx/clutter-stage-glx.c: (clutter_stage_glx_unrealize): + Trap the X calls to avoid potential X errors. + 2007-07-06 Ross Burton * tests/Makefile.am: diff --git a/clutter/clutter-box.c b/clutter/clutter-box.c index 134dd48e3..b8e335a28 100644 --- a/clutter/clutter-box.c +++ b/clutter/clutter-box.c @@ -165,7 +165,7 @@ clutter_box_pick (ClutterActor *actor, const ClutterColor *color) { /* just repaint; in the future we might enter in a "focused" status here */ - clutter_actor_paint (actor); + clutter_box_paint (actor); } static void diff --git a/clutter/glx/clutter-stage-glx.c b/clutter/glx/clutter-stage-glx.c index 4935f2b9e..798e3afbb 100644 --- a/clutter/glx/clutter-stage-glx.c +++ b/clutter/glx/clutter-stage-glx.c @@ -78,6 +78,8 @@ clutter_stage_glx_unrealize (ClutterActor *actor) g_object_get (actor, "offscreen", &was_offscreen, NULL); + clutter_glx_trap_x_errors (); + if (G_UNLIKELY (was_offscreen)) { if (stage_glx->glxpixmap) @@ -109,6 +111,9 @@ clutter_stage_glx_unrealize (ClutterActor *actor) glXDestroyContext (stage_glx->xdpy, stage_glx->gl_context); stage_glx->gl_context = None; } + + XSync (stage_glx->xdpy, False); + clutter_glx_untrap_x_errors (); } static void