From 6203779411c96ed94f1e57a4514e42aa3eb024b7 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: 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 96dd25f0..8016da6b 100644 --- a/src/ui/theme.c +++ b/src/ui/theme.c @@ -1170,8 +1170,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] != '(') { @@ -1212,9 +1219,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; -- cgit v1.2.1