Don't create the Cogl GLib source multiple times
authorOwen W. Taylor <otaylor@fishsoup.net>
Wed, 29 Jun 2016 21:03:46 +0000 (17:03 -0400)
committerSjoerd Simons <sjoerd@debian.org>
Fri, 18 Nov 2016 21:23:04 +0000 (21:23 +0000)
Since the check for backend->cogl_context was accidentally moved
to clutter_backend_do_real_create_context, the Glib source that
is created at the end of clutter_backend_do_create_context() is
created and added each time create_context() is called, though
create_context() is supposed to be idempotent.

https://bugzilla.gnome.org/show_bug.cgi?id=768243

Gbp-Pq: Name Don-t-create-the-Cogl-GLib-source-multiple-times.patch

clutter/clutter-backend.c

index bce4e913870a5cb8b1222b1f4568f13145eec10d..d150e7c892af8ed75ee2c938211979f4fa5de778 100644 (file)
@@ -252,9 +252,6 @@ clutter_backend_do_real_create_context (ClutterBackend  *backend,
   CoglSwapChain *swap_chain;
   GError *internal_error;
 
-  if (backend->cogl_context != NULL)
-    return TRUE;
-
   klass = CLUTTER_BACKEND_GET_CLASS (backend);
 
   swap_chain = NULL;
@@ -383,6 +380,9 @@ clutter_backend_real_create_context (ClutterBackend  *backend,
   gboolean allow_any;
   int i;
 
+  if (backend->cogl_context != NULL)
+    return TRUE;
+
   if (allowed_drivers == NULL)
     allowed_drivers = CLUTTER_DRIVERS;