X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkcsscolorvalue.c;h=9ff0a052107e20c605cd48ce675e2967564a0698;hb=32bd10bf74cd2b7f2d16432d4198dca82c386133;hp=5e6a7f0c028eeffa3882fc964a8421518e86a381;hpb=42dc0ea0fd423f3794d1f77bb9bb84d5bc9d3c0e;p=~andy%2Fgtk diff --git a/gtk/gtkcsscolorvalue.c b/gtk/gtkcsscolorvalue.c index 5e6a7f0c0..9ff0a0521 100644 --- a/gtk/gtkcsscolorvalue.c +++ b/gtk/gtkcsscolorvalue.c @@ -24,7 +24,6 @@ #include "gtkhslaprivate.h" #include "gtkstylepropertyprivate.h" #include "gtkstyleproperties.h" -#include "gtksymboliccolorprivate.h" #include "gtkwin32themeprivate.h" typedef enum { @@ -146,15 +145,14 @@ _gtk_css_color_value_resolve (GtkCssValue *color, GtkCssDependencies unused; GtkCssValue *value; - g_return_val_if_fail (color != NULL, FALSE); - g_return_val_if_fail (provider == NULL || GTK_IS_STYLE_PROVIDER_PRIVATE (provider), FALSE); - g_return_val_if_fail (current != NULL, FALSE); + g_return_val_if_fail (color != NULL, NULL); + g_return_val_if_fail (provider == NULL || GTK_IS_STYLE_PROVIDER_PRIVATE (provider), NULL); + g_return_val_if_fail (current != NULL, NULL); if (dependencies == NULL) dependencies = &unused; *dependencies = 0; - value = NULL; switch (color->type) { case COLOR_TYPE_LITERAL: @@ -184,12 +182,7 @@ _gtk_css_color_value_resolve (GtkCssValue *color, *dependencies = _gtk_css_dependencies_union (*dependencies, 0); _gtk_hsla_init_from_rgba (&hsla, _gtk_css_rgba_value_get_rgba (val)); - - hsla.lightness *= color->sym_col.shade.factor; - hsla.lightness = CLAMP (hsla.lightness, 0.0, 1.0); - - hsla.saturation *= color->sym_col.shade.factor; - hsla.saturation = CLAMP (hsla.saturation, 0.0, 1.0); + _gtk_hsla_shade (&hsla, &hsla, color->sym_col.shade.factor); _gdk_rgba_init_from_hsla (&shade, &hsla); @@ -271,26 +264,23 @@ _gtk_css_color_value_resolve (GtkCssValue *color, } break; default: + value = NULL; g_assert_not_reached (); } - if (value != NULL) + if (color->last_value != NULL && + _gtk_css_value_equal (color->last_value, value)) { - if (color->last_value != NULL && - _gtk_css_value_equal (color->last_value, value)) - { - _gtk_css_value_unref (value); - value = _gtk_css_value_ref (color->last_value); - } - else - { - if (color->last_value != NULL) - _gtk_css_value_unref (color->last_value); - color->last_value = _gtk_css_value_ref (value); - } + _gtk_css_value_unref (value); + value = _gtk_css_value_ref (color->last_value); + } + else + { + if (color->last_value != NULL) + _gtk_css_value_unref (color->last_value); + color->last_value = _gtk_css_value_ref (value); } - _gtk_css_rgba_value_get_rgba (value); return value; }