summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@linux.intel.com>2011-11-14 15:43:20 +0000
committerEmmanuele Bassi <ebassi@linux.intel.com>2011-11-14 15:43:20 +0000
commitf1ebfe30cee518811454b2bea6558bcfd19a5eb7 (patch)
tree372c09161004c6f27ba4780314607fef23140fbb
parente7720c415649cb67453b90764258f398f8e97107 (diff)
downloadclutter-f1ebfe30cee518811454b2bea6558bcfd19a5eb7.tar.gz
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.
-rw-r--r--clutter/clutter-private.h4
-rw-r--r--clutter/clutter-stage-manager.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/clutter/clutter-private.h b/clutter/clutter-private.h
index 017d54e7a..8c8f602f3 100644
--- a/clutter/clutter-private.h
+++ b/clutter/clutter-private.h
@@ -40,6 +40,7 @@
#include "clutter-layout-manager.h"
#include "clutter-master-clock.h"
#include "clutter-settings.h"
+#include "clutter-stage-manager.h"
#include "clutter-stage.h"
G_BEGIN_DECLS
@@ -124,6 +125,9 @@ struct _ClutterMainContext
/* the main windowing system backend */
ClutterBackend *backend;
+ /* the object holding all the stage instances */
+ ClutterStageManager *stage_manager;
+
/* the main event queue */
GQueue *events_queue;
diff --git a/clutter/clutter-stage-manager.c b/clutter/clutter-stage-manager.c
index 26e58ccd9..a6005944f 100644
--- a/clutter/clutter-stage-manager.c
+++ b/clutter/clutter-stage-manager.c
@@ -178,12 +178,12 @@ clutter_stage_manager_init (ClutterStageManager *stage_manager)
ClutterStageManager *
clutter_stage_manager_get_default (void)
{
- static ClutterStageManager *stage_manager = NULL;
+ ClutterMainContext *context = _clutter_context_get_default ();
- if (G_UNLIKELY (stage_manager == NULL))
- stage_manager = g_object_new (CLUTTER_TYPE_STAGE_MANAGER, NULL);
+ if (G_UNLIKELY (context->stage_manager == NULL))
+ context->stage_manager = g_object_new (CLUTTER_TYPE_STAGE_MANAGER, NULL);
- return stage_manager;
+ return context->stage_manager;
}
/**