theme: Allow disabling fallback colors in gtk:custom()

gtk:custom() requires a fallback color in case the GTK+ theme in use
does not define the desired color. As in general the fallback color
will approximate the intended color, there is the risk of typos going
unnoticed. To make catching these kind of errors easier, allow to ignore
the fallback color specified (and fall back to a nice shade of pink
instead) by setting an environment variable.

https://bugzilla.gnome.org/show_bug.cgi?id=656112
This commit is contained in:
Florian Müllner 2011-08-07 18:55:30 +02:00
parent 08363f4d9b
commit a485685867

View File

@ -1195,8 +1195,15 @@ meta_color_spec_new_from_string (const char *str,
str[8] == 'o' && str[9] == 'm')
{
const char *color_name_start, *fallback_str_start, *end;
char *color_name, *fallback_str;
char *color_name;
MetaColorSpec *fallback = NULL;
static gboolean debug, debug_set = FALSE;
if (!debug_set)
{
debug = g_getenv ("MUTTER_DISABLE_FALLBACK_COLOR") != NULL;
debug_set = TRUE;
}
if (str[10] != '(')
{
@ -1237,9 +1244,18 @@ meta_color_spec_new_from_string (const char *str,
return NULL;
}
fallback_str = g_strndup (fallback_str_start, end - fallback_str_start);
fallback = meta_color_spec_new_from_string (fallback_str, err);
g_free (fallback_str);
if (!debug)
{
char *fallback_str;
fallback_str = g_strndup (fallback_str_start,
end - fallback_str_start);
fallback = meta_color_spec_new_from_string (fallback_str, err);
g_free (fallback_str);
}
else
{
fallback = meta_color_spec_new_from_string ("pink", err);
}
if (fallback == NULL)
return NULL;