gtkcssanimatedstyle: Fix return of new_advance()
authorMatteo Percivaldi <m.percivaldi@fastassembler.com>
Fri, 13 Jan 2023 13:05:10 +0000 (14:05 +0100)
committerSimon McVittie <smcv@debian.org>
Sat, 9 Sep 2023 19:32:02 +0000 (20:32 +0100)
This was causing animation and transition to stop randomly and reset
their state to initial state.

This issue has existed since commit
7b68bdb8316fc1bb96c4a5ad16c1885506131d22.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/4426
Origin: upstream, 4.8.4, commit:1ff3a26c9644fbcbd91107280ff1ef839d4ea2f2

Gbp-Pq: Name gtkcssanimatedstyle-Fix-return-of-new_advance.patch

gtk/gtkcssanimatedstyle.c

index fdfcf17f1fc5b51e37e41bfdfebc176905260eda..17287f28c4b257930dd7c31d3d8ab4cf39bf26a9 100644 (file)
@@ -937,9 +937,12 @@ gtk_css_animated_style_new_advance (GtkCssAnimatedStyle *source,
   gtk_internal_return_val_if_fail (GTK_IS_CSS_ANIMATED_STYLE (source), NULL);
   gtk_internal_return_val_if_fail (GTK_IS_CSS_STYLE (base_style), NULL);
 
-  if (timestamp == 0 || timestamp == source->current_time)
+  if (timestamp == 0)
     return g_object_ref (source->style);
 
+  if (timestamp == source->current_time)
+    return g_object_ref (GTK_CSS_STYLE (source));
+
   gtk_internal_return_val_if_fail (timestamp > source->current_time, NULL);
 
   animations = NULL;