summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Müllner <[email protected]>2011-08-07 18:55:30 +0200
committerVictor Kareh <[email protected]>2018-08-28 09:38:37 -0400
commit6203779411c96ed94f1e57a4514e42aa3eb024b7 (patch)
tree53855747e8bab4d20f35a6a34c343b60fd98526c
parent18bfff32531e13d18c53f9a990fdf48a2cd52673 (diff)
downloadmarco-6203779411c96ed94f1e57a4514e42aa3eb024b7.tar.bz2
marco-6203779411c96ed94f1e57a4514e42aa3eb024b7.tar.xz
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
-rw-r--r--src/ui/theme.c24
1 files 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;