[gtk+] revealer: emit notify::child-revealed when animation stops
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] revealer: emit notify::child-revealed when animation stops
- Date: Fri, 6 May 2016 20:10:29 +0000 (UTC)
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]