Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Berg <benjamin@sipsolutions.net>2008-03-24 22:40:16 (GMT)
committer Benjamin Berg <benjamin@sipsolutions.net>2008-03-24 22:40:16 (GMT)
commit365bff7f81d7145d8dea4fb1274d4ebf7511e5b9 (patch)
tree748dbc104a7f45dc8aaf8c2ce197ac9c5abbdc28
parent69ee4bec2df6e8aaadc86d43470172e4e8c93f68 (diff)
Check the color flags while merging. This allows overriding the bg color for applications.
-rw-r--r--gtk/engine/sugar-rc-style.c20
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;
+ }
}
}