stage-manager: Store the stage manager into the main context

Use the main context to store the stage manager singleton, instead of a
static pointer inside clutter-stage-manager.c.
This commit is contained in:
Emmanuele Bassi 2011-11-14 15:43:20 +00:00
parent e7720c4156
commit f1ebfe30ce
2 changed files with 8 additions and 4 deletions

View File

@ -40,6 +40,7 @@
#include "clutter-layout-manager.h" #include "clutter-layout-manager.h"
#include "clutter-master-clock.h" #include "clutter-master-clock.h"
#include "clutter-settings.h" #include "clutter-settings.h"
#include "clutter-stage-manager.h"
#include "clutter-stage.h" #include "clutter-stage.h"
G_BEGIN_DECLS G_BEGIN_DECLS
@ -124,6 +125,9 @@ struct _ClutterMainContext
/* the main windowing system backend */ /* the main windowing system backend */
ClutterBackend *backend; ClutterBackend *backend;
/* the object holding all the stage instances */
ClutterStageManager *stage_manager;
/* the main event queue */ /* the main event queue */
GQueue *events_queue; GQueue *events_queue;

View File

@ -178,12 +178,12 @@ clutter_stage_manager_init (ClutterStageManager *stage_manager)
ClutterStageManager * ClutterStageManager *
clutter_stage_manager_get_default (void) clutter_stage_manager_get_default (void)
{ {
static ClutterStageManager *stage_manager = NULL; ClutterMainContext *context = _clutter_context_get_default ();
if (G_UNLIKELY (stage_manager == NULL)) if (G_UNLIKELY (context->stage_manager == NULL))
stage_manager = g_object_new (CLUTTER_TYPE_STAGE_MANAGER, NULL); context->stage_manager = g_object_new (CLUTTER_TYPE_STAGE_MANAGER, NULL);
return stage_manager; return context->stage_manager;
} }
/** /**