[gtk+] revealer: Use the same transition animation as GtkStack
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] revealer: Use the same transition animation as GtkStack
- Date: Wed, 9 Oct 2013 22:30:11 +0000 (UTC)
commit 81538d492eaf9154f845742a688f0c8d959577ea
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Wed Oct 9 18:29:19 2013 -0400
revealer: Use the same transition animation as GtkStack
gtk/gtkrevealer.c | 18 +++++++++++-------
1 files changed, 11 insertions(+), 7 deletions(-)
---
diff --git a/gtk/gtkrevealer.c b/gtk/gtkrevealer.c
index 09718f3..d872fcd 100644
--- a/gtk/gtkrevealer.c
+++ b/gtk/gtkrevealer.c
@@ -506,11 +506,14 @@ gtk_revealer_set_position (GtkRevealer *revealer,
g_object_notify (G_OBJECT (revealer), "child-revealed");
}
-static gdouble
-ease_out_quad (gdouble t, gdouble d)
+/* From clutter-easing.c, based on Robert Penner's
+ * infamous easing equations, MIT license.
+ */
+static double
+ease_out_cubic (double t)
{
- gdouble p = t / d;
- return ((-1.0) * p) * (p - 2);
+ double p = t - 1;
+ return p * p * p + 1;
}
static void
@@ -520,10 +523,11 @@ gtk_revealer_animate_step (GtkRevealer *revealer,
GtkRevealerPrivate *priv = gtk_revealer_get_instance_private (revealer);
gdouble t;
- t = 1.0;
if (now < priv->end_time)
- t = (now - priv->start_time) / (gdouble) (priv->end_time - priv->start_time);
- t = ease_out_quad (t, 1.0);
+ t = (now - priv->start_time) / (gdouble) (priv->end_time - priv->start_time);
+ else
+ t = 1.0;
+ t = ease_out_cubic (t);
gtk_revealer_set_position (revealer,
priv->source_pos + (t * (priv->target_pos - priv->source_pos)));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]