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



commit 82aa83b0f685f80343d2e60663d07ec51aecb688
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 49d9048..b23f66a 100644
--- a/gtk/gtkrevealer.c
+++ b/gtk/gtkrevealer.c
@@ -632,8 +632,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]