From: Matteo Percivaldi Date: Fri, 13 Jan 2023 13:05:10 +0000 (+0100) Subject: gtkcssanimatedstyle: Fix return of new_advance() X-Git-Tag: archive/raspbian/4.8.3+ds-2+rpi1~2^2~10 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=ec86ff648685c7d38ea5df2319bf0a9896375346;p=gtk4.git gtkcssanimatedstyle: Fix return of new_advance() 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 --- diff --git a/gtk/gtkcssanimatedstyle.c b/gtk/gtkcssanimatedstyle.c index fdfcf17f1f..17287f28c4 100644 --- a/gtk/gtkcssanimatedstyle.c +++ b/gtk/gtkcssanimatedstyle.c @@ -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;