summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Landwerlin <llandwerlin@gmail.com>2014-08-17 21:31:28 +0100
committerLionel Landwerlin <llandwerlin@gmail.com>2014-08-17 21:31:32 +0100
commit4ef73b72ac15505914a24f15ded842737b954dfc (patch)
tree1c9e9b786ddc9296fd3d85acbab8bd46a30b20ec
parentd3ce5bc8f0a8e2db7dcac3ce62d28b35aeed360c (diff)
downloadclutter-gtk-4ef73b72ac15505914a24f15ded842737b954dfc.tar.gz
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
-rw-r--r--clutter-gtk/gtk-clutter-embed.c2
1 files changed, 1 insertions, 1 deletions
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);