summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2011-11-15 14:20:22 +0800
committerChun-wei Fan <fanchunwei@src.gnome.org>2011-11-15 14:20:22 +0800
commit8d0c68347a4ee33bb77c7c21760b63f15db9cf26 (patch)
treeed825bfd723eb0616a36f8c759c2308ccec51f7b
parent96d4e527ea8bf0e7fd238ba6cafd578f86fea27f (diff)
parentb281f2090a8fb042cb471611eab54c26ceba8074 (diff)
downloadclutter-8d0c68347a4ee33bb77c7c21760b63f15db9cf26.tar.gz
Merge branch 'master' into msvc-support-master
-rw-r--r--clutter/clutter-master-clock.c10
-rw-r--r--clutter/clutter-private.h7
-rw-r--r--clutter/clutter-stage-manager.c8
3 files changed, 15 insertions, 10 deletions
diff --git a/clutter/clutter-master-clock.c b/clutter/clutter-master-clock.c
index 21a86d579..2f2debda4 100644
--- a/clutter/clutter-master-clock.c
+++ b/clutter/clutter-master-clock.c
@@ -95,8 +95,6 @@ static gboolean clutter_clock_dispatch (GSource *source,
GSourceFunc callback,
gpointer user_data);
-static ClutterMasterClock *default_clock = NULL;
-
static GSourceFuncs clock_funcs = {
clutter_clock_prepare,
clutter_clock_check,
@@ -461,12 +459,12 @@ clutter_master_clock_init (ClutterMasterClock *self)
ClutterMasterClock *
_clutter_master_clock_get_default (void)
{
- if (G_LIKELY (default_clock != NULL))
- return default_clock;
+ ClutterMainContext *context = _clutter_context_get_default ();
- default_clock = g_object_new (CLUTTER_TYPE_MASTER_CLOCK, NULL);
+ if (G_UNLIKELY (context->master_clock == NULL))
+ context->master_clock = g_object_new (CLUTTER_TYPE_MASTER_CLOCK, NULL);
- return default_clock;
+ return context->master_clock;
}
/*
diff --git a/clutter/clutter-private.h b/clutter/clutter-private.h
index 017d54e7a..30ea65fa3 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,12 @@ struct _ClutterMainContext
/* the main windowing system backend */
ClutterBackend *backend;
+ /* the object holding all the stage instances */
+ ClutterStageManager *stage_manager;
+
+ /* the clock driving all the frame operations */
+ ClutterMasterClock *master_clock;
+
/* 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;
}
/**