From a48568586723fa053b226558bdbb44962e1b05b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sun, 7 Aug 2011 18:55:30 +0200 Subject: [PATCH] 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 --- src/ui/theme.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/ui/theme.c b/src/ui/theme.c index 8e6f52129..d240ef7d2 100644 --- a/src/ui/theme.c +++ b/src/ui/theme.c @@ -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;