Compare commits

...

2 Commits

Author SHA1 Message Date
Benjamin Otte
3ad4b8bf9a Update gtkcssanimatedstyle.c 2019-08-18 16:06:46 +00:00
Benjamin Otte
a1cacc590d css: Avoid unneeded transition work
Add an early exit in the transition creation code when no transitions are given. In that case, both transition-duration and transition-delay are equal to their default value of 0, which means no transitions should run at all.
2019-08-18 15:57:09 +00:00

View File

@@ -272,11 +272,17 @@ gtk_css_animated_style_create_css_transitions (GSList *animations,
GtkCssValue *durations, *delays, *timing_functions;
guint i;
transition_infos_set (transitions, gtk_css_style_get_value (base_style, GTK_CSS_PROPERTY_TRANSITION_PROPERTY));
durations = gtk_css_style_get_value (base_style, GTK_CSS_PROPERTY_TRANSITION_DURATION);
delays = gtk_css_style_get_value (base_style, GTK_CSS_PROPERTY_TRANSITION_DELAY);
timing_functions = gtk_css_style_get_value (base_style, GTK_CSS_PROPERTY_TRANSITION_TIMING_FUNCTION);
/* early exit if transition-duration and transition-delay aren't set (default) */
if (_gtk_css_array_value_get_n_values (durations) == 1 &&
_gtk_css_array_value_get_n_values (delays) == 1 &&
_gtk_css_number_value_get (_gtk_css_array_value_get_nth (durations, 0), 100)
+ _gtk_css_number_value_get (_gtk_css_array_value_get_nth (delays, 0), 100) == 0)
return animations;
transition_infos_set (transitions, gtk_css_style_get_value (base_style, GTK_CSS_PROPERTY_TRANSITION_PROPERTY));
for (i = 0; i < GTK_CSS_PROPERTY_N_PROPERTIES; i++)
{