2006-07-15 Emmanuele Bassi <ebassi@openedhand.com>

* clutter/clutter-main.c:
	
	(clutter_main): Destroy the main stage, instead of unreffing it.

	(clutter_init): Ref and sink the main stage, as it is a top
	level actor.

	* clutter/clutter-stage.c (clutter_stage_unrealize): Access
	the Window private member directly, instead of calling the
	get_xwindow method.

	* examples/test.c (main): Quit on button press.
This commit is contained in:
Emmanuele Bassi 2006-07-15 22:47:37 +00:00
parent ce5c1150f2
commit 939ce2877c
4 changed files with 23 additions and 5 deletions

View File

@ -1,3 +1,18 @@
2006-07-15 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-main.c:
(clutter_main): Destroy the main stage, instead of unreffing it.
(clutter_init): Ref and sink the main stage, as it is a top
level actor.
* clutter/clutter-stage.c (clutter_stage_unrealize): Access
the Window private member directly, instead of calling the
get_xwindow method.
* examples/test.c (main): Quit on button press.
2006-07-09 Emmanuele Bassi <ebassi@openedhand.com> 2006-07-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-event.h: Change the name of the * clutter/clutter-event.h: Change the name of the

View File

@ -391,7 +391,7 @@ clutter_main (void)
if (context->main_loop_level == 0) if (context->main_loop_level == 0)
{ {
g_object_unref (context->stage); clutter_actor_destroy (CLUTTER_ACTOR (context->stage));
g_free (context); g_free (context);
} }
} }
@ -571,6 +571,7 @@ clutter_init (int *argc, char ***argv)
context->stage = CLUTTER_STAGE (clutter_stage_get_default ()); context->stage = CLUTTER_STAGE (clutter_stage_get_default ());
g_return_val_if_fail (CLUTTER_IS_STAGE (context->stage), -3); g_return_val_if_fail (CLUTTER_IS_STAGE (context->stage), -3);
g_object_ref_sink (context->stage);
clutter_actor_realize (CLUTTER_ACTOR (context->stage)); clutter_actor_realize (CLUTTER_ACTOR (context->stage));
g_return_val_if_fail g_return_val_if_fail

View File

@ -262,8 +262,6 @@ clutter_stage_unrealize (ClutterActor *actor)
if (priv->want_offscreen) if (priv->want_offscreen)
{ {
if (priv->glxpixmap) if (priv->glxpixmap)
{ {
glXDestroyGLXPixmap (clutter_xdisplay(), priv->glxpixmap); glXDestroyGLXPixmap (clutter_xdisplay(), priv->glxpixmap);
@ -278,7 +276,7 @@ clutter_stage_unrealize (ClutterActor *actor)
} }
else else
{ {
if (clutter_stage_get_xwindow (CLUTTER_STAGE(actor))) if (priv->xwin)
{ {
XDestroyWindow (clutter_xdisplay(), priv->xwin); XDestroyWindow (clutter_xdisplay(), priv->xwin);
priv->xwin = None; priv->xwin = None;
@ -771,6 +769,7 @@ clutter_stage_get_default (void)
if (!stage_singleton) if (!stage_singleton)
{ {
stage_singleton = g_object_new (CLUTTER_TYPE_STAGE, NULL); stage_singleton = g_object_new (CLUTTER_TYPE_STAGE, NULL);
retval = CLUTTER_ACTOR (stage_singleton); retval = CLUTTER_ACTOR (stage_singleton);
} }
else else

View File

@ -72,6 +72,9 @@ main (int argc, char *argv[])
clutter_init (&argc, &argv); clutter_init (&argc, &argv);
stage = clutter_stage_get_default (); stage = clutter_stage_get_default ();
g_signal_connect (stage, "button-press-event",
G_CALLBACK (clutter_main_quit),
NULL);
pixbuf = gdk_pixbuf_new_from_file ("clutter-logo-800x600.png", NULL); pixbuf = gdk_pixbuf_new_from_file ("clutter-logo-800x600.png", NULL);