diff --git a/clutter/clutter-backend-private.h b/clutter/clutter-backend-private.h index 32ebba220..72563a3b1 100644 --- a/clutter/clutter-backend-private.h +++ b/clutter/clutter-backend-private.h @@ -44,6 +44,7 @@ struct _ClutterBackend CoglRenderer *cogl_renderer; CoglDisplay *cogl_display; CoglContext *cogl_context; + GSource *cogl_source; ClutterDeviceManager *device_manager; diff --git a/clutter/clutter-backend.c b/clutter/clutter-backend.c index 9d14df3fa..488008f7b 100644 --- a/clutter/clutter-backend.c +++ b/clutter/clutter-backend.c @@ -142,6 +142,8 @@ clutter_backend_finalize (GObject *gobject) { ClutterBackend *backend = CLUTTER_BACKEND (gobject); + g_source_destroy (backend->cogl_source); + g_free (backend->priv->font_name); clutter_backend_set_font_options (backend, NULL); @@ -324,6 +326,10 @@ clutter_backend_real_create_context (ClutterBackend *backend, if (backend->cogl_context == NULL) goto error; + backend->cogl_source = cogl_glib_source_new (backend->cogl_context, + G_PRIORITY_DEFAULT); + g_source_attach (backend->cogl_source, NULL); + /* the display owns the renderer and the swap chain */ cogl_object_unref (backend->cogl_renderer); cogl_object_unref (swap_chain);