[libdazzle] dock-revealer: more animation cleanup
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libdazzle] dock-revealer: more animation cleanup
- Date: Wed, 5 Jul 2017 01:17:27 +0000 (UTC)
commit 8b712c0afd0b7edd0cee9b4cbe1b846b4aaa00c2
Author: Christian Hergert <chergert redhat com>
Date: Tue Jul 4 18:17:15 2017 -0700
dock-revealer: more animation cleanup
More work on initial consistency for reveal-child state.
src/panel/dzl-dock-revealer.c | 65 +++++++++++++++++++++--------------------
1 files changed, 33 insertions(+), 32 deletions(-)
---
diff --git a/src/panel/dzl-dock-revealer.c b/src/panel/dzl-dock-revealer.c
index 95e520f..1883f5b 100644
--- a/src/panel/dzl-dock-revealer.c
+++ b/src/panel/dzl-dock-revealer.c
@@ -157,27 +157,27 @@ dzl_dock_revealer_animation_done (gpointer user_data)
{
g_autoptr(DzlDockRevealer) self = user_data;
DzlDockRevealerPrivate *priv = dzl_dock_revealer_get_instance_private (self);
+ GtkWidget *child;
+ gboolean child_revealed = FALSE;
+ gboolean child_visible = FALSE;
g_assert (DZL_DOCK_REVEALER (self));
+ child = gtk_bin_get_child (GTK_BIN (self));
+
if (priv->adjustment != NULL)
{
- gboolean child_revealed;
-
- child_revealed = (gtk_adjustment_get_value (priv->adjustment) == 1.0);
+ child_revealed = gtk_adjustment_get_value (priv->adjustment) >= 1.0;
+ child_visible = gtk_adjustment_get_value (priv->adjustment) != 0.0;
+ }
- if (priv->child_revealed != child_revealed)
- {
- GtkWidget *child = gtk_bin_get_child (GTK_BIN (self));
+ if (child != NULL)
+ gtk_widget_set_child_visible (GTK_WIDGET (child), child_visible);
- priv->child_revealed = child_revealed;
- gtk_widget_set_child_visible (GTK_WIDGET (child),
- gtk_adjustment_get_value (priv->adjustment) != 0.0);
- g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_CHILD_REVEALED]);
- }
+ priv->child_revealed = child_revealed;
- gtk_widget_queue_resize (GTK_WIDGET (self));
- }
+ g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_CHILD_REVEALED]);
+ gtk_widget_queue_resize (GTK_WIDGET (self));
}
static guint
@@ -263,32 +263,33 @@ dzl_dock_revealer_set_reveal_child (DzlDockRevealer *self,
if (reveal_child != priv->reveal_child)
{
GtkWidget *child = gtk_bin_get_child (GTK_BIN (self));
- DzlAnimation *animation;
- guint duration;
priv->reveal_child = reveal_child;
dzl_animation_stop (priv->animation);
dzl_clear_weak_pointer (&priv->animation);
- g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_REVEAL_CHILD]);
-
- if (child == NULL)
- return;
+ if (child != NULL)
+ {
+ DzlAnimation *animation;
+ guint duration;
- gtk_widget_set_child_visible (child, TRUE);
+ gtk_widget_set_child_visible (child, TRUE);
- duration = dzl_dock_revealer_calculate_duration (self);
+ duration = dzl_dock_revealer_calculate_duration (self);
+ animation = dzl_object_animate_full (priv->adjustment,
+ DZL_ANIMATION_EASE_IN_OUT_CUBIC,
+ duration,
+ gtk_widget_get_frame_clock (GTK_WIDGET (self)),
+ dzl_dock_revealer_animation_done,
+ g_object_ref (self),
+ "value", reveal_child ? 1.0 : 0.0,
+ NULL);
+ dzl_set_weak_pointer (&priv->animation, animation);
+ }
- animation = dzl_object_animate_full (priv->adjustment,
- DZL_ANIMATION_EASE_IN_OUT_CUBIC,
- duration,
- gtk_widget_get_frame_clock (GTK_WIDGET (self)),
- dzl_dock_revealer_animation_done,
- g_object_ref (self),
- "value", reveal_child ? 1.0 : 0.0,
- NULL);
- dzl_set_weak_pointer (&priv->animation, animation);
+ g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_REVEAL_CHILD]);
+ gtk_widget_queue_resize (GTK_WIDGET (self));
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]