summaryrefslogtreecommitdiff
path: root/gtk/gtkcssanimation.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2012-09-12 15:27:59 +0200
committerBenjamin Otte <otte@redhat.com>2012-09-17 20:39:12 +0200
commit7224f897d64055acd09d9befedb526456b80d103 (patch)
tree9fa909ca97955da01df9a00b83852bb3e888ec94 /gtk/gtkcssanimation.c
parent229b6fe17a1c198a1381d905656c23820bfcce94 (diff)
downloadgtk+-7224f897d64055acd09d9befedb526456b80d103.tar.gz
animation: Add _gtk_style_animation_is_static()
This will be useful to not trigger updates all the time when nothing is happening (ie due to animations being paused or due to them having reached their final value).
Diffstat (limited to 'gtk/gtkcssanimation.c')
-rw-r--r--gtk/gtkcssanimation.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gtk/gtkcssanimation.c b/gtk/gtkcssanimation.c
index 765bb4e750..c0964de2ba 100644
--- a/gtk/gtkcssanimation.c
+++ b/gtk/gtkcssanimation.c
@@ -143,6 +143,18 @@ gtk_css_animation_is_finished (GtkStyleAnimation *style_animation,
return FALSE;
}
+static gboolean
+gtk_css_animation_is_static (GtkStyleAnimation *style_animation,
+ gint64 at_time_us)
+{
+ GtkCssAnimation *animation = GTK_CSS_ANIMATION (style_animation);
+ double iteration;
+
+ iteration = gtk_css_animation_get_iteration (animation, at_time_us);
+
+ return iteration >= animation->iteration_count;
+}
+
static void
gtk_css_animation_finalize (GObject *object)
{
@@ -165,6 +177,7 @@ _gtk_css_animation_class_init (GtkCssAnimationClass *klass)
animation_class->set_values = gtk_css_animation_set_values;
animation_class->is_finished = gtk_css_animation_is_finished;
+ animation_class->is_static = gtk_css_animation_is_static;
}
static void