From: Owen W. Taylor Date: Wed, 29 Jun 2016 21:03:46 +0000 (-0400) Subject: Don't create the Cogl GLib source multiple times X-Git-Tag: archive/raspbian/1.26.0+dfsg-3+rpi1~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=02be3caa376fcfe2acaafe59fcedb48668f3e1b9;p=clutter-1.0.git 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 Gbp-Pq: Name Don-t-create-the-Cogl-GLib-source-multiple-times.patch --- diff --git a/clutter/clutter-backend.c b/clutter/clutter-backend.c index bce4e91..d150e7c 100644 --- a/clutter/clutter-backend.c +++ b/clutter/clutter-backend.c @@ -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;