]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkcsscolorvalue.c
filechooserbutton: whitespace fixes
[~andy/gtk] / gtk / gtkcsscolorvalue.c
index ab7483ff0df59ca3105c59f2f174f3087782758f..9ff0a052107e20c605cd48ce675e2967564a0698 100644 (file)
@@ -24,7 +24,6 @@
 #include "gtkhslaprivate.h"
 #include "gtkstylepropertyprivate.h"
 #include "gtkstyleproperties.h"
-#include "gtksymboliccolorprivate.h"
 #include "gtkwin32themeprivate.h"
 
 typedef enum {
@@ -146,29 +145,27 @@ _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:
       return _gtk_css_value_ref (color->last_value);
     case COLOR_TYPE_NAME:
       {
-       GtkSymbolicColor *symbolic;
-
-        symbolic = _gtk_style_provider_private_get_color (provider, color->sym_col.name);
+       GtkCssValue *named;
 
-       if (!symbolic)
+        named = _gtk_style_provider_private_get_color (provider, color->sym_col.name);
+       if (named == NULL)
          return NULL;
 
-        value = _gtk_css_color_value_resolve (_gtk_symbolic_color_get_css_value (symbolic), provider, current, current_deps, dependencies);
+        value = _gtk_css_color_value_resolve (named, provider, current, current_deps, dependencies);
       }
 
       break;
@@ -185,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);
 
@@ -272,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;
 }