diff options
author | Lionel Landwerlin <llandwerlin@gmail.com> | 2014-08-17 21:31:28 +0100 |
---|---|---|
committer | Lionel Landwerlin <llandwerlin@gmail.com> | 2014-08-17 21:31:32 +0100 |
commit | 4ef73b72ac15505914a24f15ded842737b954dfc (patch) | |
tree | 1c9e9b786ddc9296fd3d85acbab8bd46a30b20ec | |
parent | d3ce5bc8f0a8e2db7dcac3ce62d28b35aeed360c (diff) | |
download | clutter-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.c | 2 |
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); |