summaryrefslogtreecommitdiff
path: root/src
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 /src
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
Diffstat (limited to 'src')
-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;