From 00d1f7320486cbdc72ff095bddba0d5601e98ce1 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 7 May 2016 16:22:13 -0400 Subject: gtk-demo: Fix revealer demo This only used by luck before. We are changing a property from the ::notify handler for that property. Now that GtkRevealer is notifying the property when it stops animations on unmap, we end up in a life lock situation where we never make it out of the notify queue. Fix this by not restarting the animation if the widget is unmapped. --- demos/gtk-demo/revealer.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/demos/gtk-demo/revealer.c b/demos/gtk-demo/revealer.c index 23092d059a..2cccb7a7ed 100644 --- a/demos/gtk-demo/revealer.c +++ b/demos/gtk-demo/revealer.c @@ -12,10 +12,13 @@ static guint timeout = 0; static void change_direction (GtkRevealer *revealer) { - gboolean revealed; + if (gtk_widget_get_mapped (GTK_WIDGET (revealer))) + { + gboolean revealed; - revealed = gtk_revealer_get_child_revealed (revealer); - gtk_revealer_set_reveal_child (revealer, !revealed); + revealed = gtk_revealer_get_child_revealed (revealer); + gtk_revealer_set_reveal_child (revealer, !revealed); + } } static gboolean -- cgit v1.2.1