diff --git a/clutter/clutter/clutter-context.c b/clutter/clutter/clutter-context.c index f94f17ac9..b58283ff1 100644 --- a/clutter/clutter/clutter-context.c +++ b/clutter/clutter/clutter-context.c @@ -98,6 +98,7 @@ clutter_context_dispose (GObject *object) g_clear_pointer (&context->events_queue, g_async_queue_unref); g_clear_pointer (&context->backend, clutter_backend_destroy); g_clear_object (&context->stage_manager); + g_clear_object (&context->settings); G_OBJECT_CLASS (clutter_context_parent_class)->dispose (object); } @@ -268,7 +269,7 @@ clutter_context_new (ClutterBackendConstructor backend_constructor, context->show_fps = clutter_show_fps; context->backend = backend_constructor (context, user_data); - context->settings = clutter_settings_get_default (); + context->settings = g_object_new (CLUTTER_TYPE_SETTINGS, NULL); _clutter_settings_set_backend (context->settings, context->backend); diff --git a/clutter/clutter/clutter-settings.c b/clutter/clutter/clutter-settings.c index d4bdf6789..7f4822a10 100644 --- a/clutter/clutter/clutter-settings.c +++ b/clutter/clutter/clutter-settings.c @@ -901,16 +901,15 @@ clutter_settings_init (ClutterSettings *self) * Return value: (transfer none): the instance of #ClutterSettings. The * returned object is owned by Clutter and it should not be unreferenced * directly + * + * Deprecated: Use [method@Clutter.Context.get_settings] instead */ ClutterSettings * clutter_settings_get_default (void) { - static ClutterSettings *settings = NULL; + ClutterContext *context = _clutter_context_get_default (); - if (G_UNLIKELY (settings == NULL)) - settings = g_object_new (CLUTTER_TYPE_SETTINGS, NULL); - - return settings; + return clutter_context_get_settings (context); } void diff --git a/clutter/clutter/clutter-settings.h b/clutter/clutter/clutter-settings.h index 0516ddfaf..6f61c7b1b 100644 --- a/clutter/clutter/clutter-settings.h +++ b/clutter/clutter/clutter-settings.h @@ -15,7 +15,7 @@ G_DECLARE_FINAL_TYPE (ClutterSettings, clutter_settings, CLUTTER, SETTINGS, GObject) -CLUTTER_EXPORT +CLUTTER_DEPRECATED_FOR (clutter_context_get_settings) ClutterSettings *clutter_settings_get_default (void); G_END_DECLS