stylecontext: Do not transition from the default style

This gets rid of a bunch of awkward transitions. It's not a perfect
solution to the problem of "should we transition from this state" but it
gets rid of the ugliest offenders.
This commit is contained in:
Benjamin Otte 2015-01-13 13:45:42 +01:00
parent 03d4e270c2
commit 63f7a36ae0

View File

@ -2870,7 +2870,8 @@ gtk_style_context_update_cache (GtkStyleContext *context,
}
static gboolean
gtk_style_context_should_create_transitions (GtkStyleContext *context)
gtk_style_context_should_create_transitions (GtkStyleContext *context,
GtkCssStyle *previous_style)
{
GtkStyleContextPrivate *priv;
gboolean animate;
@ -2883,6 +2884,9 @@ gtk_style_context_should_create_transitions (GtkStyleContext *context)
if (!gtk_widget_get_mapped (priv->widget))
return FALSE;
if (previous_style == gtk_css_static_style_get_default (priv->screen))
return FALSE;
g_object_get (gtk_widget_get_settings (context->priv->widget),
"gtk-enable-animations", &animate,
NULL);
@ -2945,7 +2949,7 @@ _gtk_style_context_validate (GtkStyleContext *context,
timestamp,
GTK_STYLE_PROVIDER_PRIVATE (priv->cascade),
priv->scale,
gtk_style_context_should_create_transitions (context) ? current : NULL);
gtk_style_context_should_create_transitions (context, current) ? current : NULL);
gtk_css_node_set_values (cssnode, style);