[gtk+] stylecontext: Do not transition from the default style



commit 63f7a36ae0ccd3b9d5ed96defce76de75671b6ec
Author: Benjamin Otte <otte redhat com>
Date:   Tue Jan 13 13:45:42 2015 +0100

    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.

 gtk/gtkstylecontext.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c
index 25385f0..19c2d0c 100644
--- a/gtk/gtkstylecontext.c
+++ b/gtk/gtkstylecontext.c
@@ -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);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]