From 4ef73b72ac15505914a24f15ded842737b954dfc Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Sun, 17 Aug 2014 21:31:28 +0100 Subject: gtk-clutter-embed: don't use queue redraw on gtk+'s draw() Calling clutter_actor_queue_redraw() triggers an asynchronous redraw cycle, which triggers the callback from gtk-clutter-embed on the 'queue-redraw' signal, thus triggering another GTK+ paint cycle. This ends up in a infinite draw loop. This patch uses the clutter_stage_ensure_redraw() methods, which prevents the 'queue-redraw' signal emission (this is exactly what we want). https://bugzilla.gnome.org/show_bug.cgi?id=734906 --- clutter-gtk/gtk-clutter-embed.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clutter-gtk/gtk-clutter-embed.c b/clutter-gtk/gtk-clutter-embed.c index 0ff2f5e..56b7840 100644 --- a/clutter-gtk/gtk-clutter-embed.c +++ b/clutter-gtk/gtk-clutter-embed.c @@ -272,7 +272,7 @@ gtk_clutter_embed_draw (GtkWidget *widget, cairo_t *cr) GtkClutterEmbedPrivate *priv = GTK_CLUTTER_EMBED (widget)->priv; if (clutter_check_windowing_backend (CLUTTER_WINDOWING_GDK)) - clutter_actor_queue_redraw (priv->stage); + clutter_stage_ensure_redraw (CLUTTER_STAGE (priv->stage)); #endif return GTK_WIDGET_CLASS (gtk_clutter_embed_parent_class)->draw (widget, cr); -- cgit v1.2.1