[gtk+/gtk-3-20] revealer: emit notify::child-revealed when animation stops



commit 2cb24c79751de60711488c84f49e53cd9ddee09a
Author: Matthieu Gautier <matthieu gautier mgautier fr>
Date:   Wed May 4 12:42:40 2016 +0200

    revealer: emit notify::child-revealed when animation stops
    
    Depending of float rounding during target calculation, the size of the
    GtkRevealer can be set to zero will the animation is not finished.
    If the GtkRevealer is in a GtkPaned, it will be hidden and so the animation
    will be stopped before it is finished.
    
    In this case, force the emission of the child-revealed signal to let
    client code know the animation is finished.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=765973

 gtk/gtkrevealer.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkrevealer.c b/gtk/gtkrevealer.c
index 1df9fd9..5f7fc73 100644
--- a/gtk/gtkrevealer.c
+++ b/gtk/gtkrevealer.c
@@ -658,8 +658,11 @@ static void
 gtk_revealer_stop_animation (GtkRevealer *revealer)
 {
   GtkRevealerPrivate *priv = gtk_revealer_get_instance_private (revealer);
-
-  priv->current_pos = priv->target_pos;
+  if (priv->current_pos != priv->target_pos)
+    {
+      priv->current_pos = priv->target_pos;
+      g_object_notify_by_pspec (G_OBJECT (revealer), props[PROP_CHILD_REVEALED]);
+    }
   if (priv->tick_id != 0)
     {
       gtk_widget_remove_tick_callback (GTK_WIDGET (revealer), priv->tick_id);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]