Skip to content

Commit

Permalink
theme: Allow disabling fallback colors in gtk:custom()
Browse files Browse the repository at this point in the history
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
  • Loading branch information
fmuellner authored and vkareh committed Aug 28, 2018
1 parent 18bfff3 commit 6203779
Showing 1 changed file with 20 additions and 4 deletions.
24 changes: 20 additions & 4 deletions src/ui/theme.c
Original file line number Diff line number Diff line change
Expand Up @@ -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] != '(')
{
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 6203779

Please sign in to comment.