diff options
author | Benjamin Berg <benjamin@sipsolutions.net> | 2008-03-24 22:40:16 (GMT) |
---|---|---|
committer | Benjamin Berg <benjamin@sipsolutions.net> | 2008-03-24 22:40:16 (GMT) |
commit | 365bff7f81d7145d8dea4fb1274d4ebf7511e5b9 (patch) | |
tree | 748dbc104a7f45dc8aaf8c2ce197ac9c5abbdc28 | |
parent | 69ee4bec2df6e8aaadc86d43470172e4e8c93f68 (diff) |
Check the color flags while merging. This allows overriding the bg color for applications.
-rw-r--r-- | gtk/engine/sugar-rc-style.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/gtk/engine/sugar-rc-style.c b/gtk/engine/sugar-rc-style.c index 20dcfb8..3d2fd13 100644 --- a/gtk/engine/sugar-rc-style.c +++ b/gtk/engine/sugar-rc-style.c @@ -354,17 +354,29 @@ sugar_rc_style_merge (GtkRcStyle *dest, sugar_dest->color_flags |= flags; for (i = 0; i < 5; i++) { - if (sugar_dest->color_mapping.bg[i] == SUGAR_COLOR_ORIGINAL) + if ((sugar_dest->color_mapping.bg[i] == SUGAR_COLOR_ORIGINAL) && + !(dest->color_flags[i] & GTK_RC_BG) && src->color_flags[i] & GTK_RC_BG) { sugar_dest->color_mapping.bg[i] = sugar_src->color_mapping.bg[i]; + dest->color_flags[i] |= GTK_RC_BG; + } - if (sugar_dest->color_mapping.fg[i] == SUGAR_COLOR_ORIGINAL) + if ((sugar_dest->color_mapping.fg[i] == SUGAR_COLOR_ORIGINAL) && + !(dest->color_flags[i] & GTK_RC_FG) && src->color_flags[i] & GTK_RC_FG) { sugar_dest->color_mapping.fg[i] = sugar_src->color_mapping.fg[i]; + dest->color_flags[i] |= GTK_RC_FG; + } - if (sugar_dest->color_mapping.base[i] == SUGAR_COLOR_ORIGINAL) + if ((sugar_dest->color_mapping.base[i] == SUGAR_COLOR_ORIGINAL) && + !(dest->color_flags[i] & GTK_RC_BASE) && src->color_flags[i] & GTK_RC_BASE) { sugar_dest->color_mapping.base[i] = sugar_src->color_mapping.base[i]; + dest->color_flags[i] |= GTK_RC_BASE; + } - if (sugar_dest->color_mapping.text[i] == SUGAR_COLOR_ORIGINAL) + if ((sugar_dest->color_mapping.text[i] == SUGAR_COLOR_ORIGINAL) && + !(dest->color_flags[i] & GTK_RC_TEXT) && src->color_flags[i] & GTK_RC_TEXT) { sugar_dest->color_mapping.text[i] = sugar_src->color_mapping.text[i]; + dest->color_flags[i] |= GTK_RC_TEXT; + } } } |