gtkcssanimatedstyle: Fix return of new_advance()
authorMatteo Percivaldi <m.percivaldi@fastassembler.com>
Fri, 13 Jan 2023 13:05:10 +0000 (14:05 +0100)
committerMatteo Percivaldi <mpercivaldi@gmail.com>
Fri, 13 Jan 2023 17:08:56 +0000 (18:08 +0100)
This was causing animation and transition to stop randomly and reset
their state to initial state.

This issue has existed since commit
7b68bdb8316fc1bb96c4a5ad16c1885506131d22.

Closes #4426

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;