2007-07-22 Emmanuele Bassi <ebassi@openedhand.com>

Two small fixes for correctly debugging the deinitialisation
	phase of the backend:

	* clutter/glx/clutter-backend-glx.c: Remove the event source
	after we unref the main stage.

	* clutter/glx/clutter-stage-glx.c: Add a mark at the end of the
	unrealize call (the perl bindings seem to crash before we reach
	this point).
This commit is contained in:
Emmanuele Bassi 2007-07-22 22:40:18 +00:00
parent 049f2feedc
commit 3648488017
3 changed files with 20 additions and 3 deletions

View File

@ -1,3 +1,15 @@
2007-07-22 Emmanuele Bassi <ebassi@openedhand.com>
Two small fixes for correctly debugging the deinitialisation
phase of the backend:
* clutter/glx/clutter-backend-glx.c: Remove the event source
after we unref the main stage.
* clutter/glx/clutter-stage-glx.c: Add a mark at the end of the
unrealize call (the perl bindings seem to crash before we reach
this point).
2007-07-22 Emmanuele Bassi <ebassi@openedhand.com> 2007-07-22 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-behaviour-ellipse.c: Remove pointer indirections; * clutter/clutter-behaviour-ellipse.c: Remove pointer indirections;

View File

@ -332,14 +332,17 @@ clutter_backend_glx_dispose (GObject *gobject)
{ {
ClutterBackendGLX *backend_glx = CLUTTER_BACKEND_GLX (gobject); ClutterBackendGLX *backend_glx = CLUTTER_BACKEND_GLX (gobject);
_clutter_backend_glx_events_uninit (CLUTTER_BACKEND(backend_glx));
if (backend_glx->stage) if (backend_glx->stage)
{ {
CLUTTER_NOTE (BACKEND, "Disposing the main stage");
g_object_unref (backend_glx->stage); g_object_unref (backend_glx->stage);
backend_glx->stage = NULL; backend_glx->stage = NULL;
} }
CLUTTER_NOTE (BACKEND, "Removing the event source");
_clutter_backend_glx_events_uninit (CLUTTER_BACKEND (backend_glx));
G_OBJECT_CLASS (clutter_backend_glx_parent_class)->dispose (gobject); G_OBJECT_CLASS (clutter_backend_glx_parent_class)->dispose (gobject);
} }

View File

@ -119,9 +119,11 @@ clutter_stage_glx_unrealize (ClutterActor *actor)
stage_glx->gl_context = None; stage_glx->gl_context = None;
} }
XSync (stage_glx->xdpy, False); XSync (stage_glx->xdpy, False);
clutter_glx_untrap_x_errors (); clutter_glx_untrap_x_errors ();
CLUTTER_MARK ();
} }
static void static void