From d77109f7fdfc56a8e13b70eebbf1c1425eec8903 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 29 Jun 2016 17:03:46 -0400 Subject: Don't create the Cogl GLib source multiple times 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 --- clutter/clutter-backend.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clutter/clutter-backend.c b/clutter/clutter-backend.c index 91bda8315..a05805ad8 100644 --- a/clutter/clutter-backend.c +++ b/clutter/clutter-backend.c @@ -253,9 +253,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; @@ -378,6 +375,9 @@ clutter_backend_real_create_context (ClutterBackend *backend, GError *internal_error = NULL; int i; + if (backend->cogl_context != NULL) + return TRUE; + for (i = 0; i < G_N_ELEMENTS (known_drivers); i++) { CLUTTER_NOTE (BACKEND, "Checking for the %s driver", known_drivers[i].driver_name); -- cgit v1.2.1