summaryrefslogtreecommitdiff
path: root/render/theme.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-06-13 13:48:00 +0000
committerDana Jansens <danakj@orodu.net>2007-06-13 13:48:00 +0000
commit89ade7a8c1a5f825f61657cb185246cefbd4e96e (patch)
tree96849b9a885905bfeab8df6a7512bf84332c95b1 /render/theme.c
parentaaba799e1d7d48f33de3eb7b8956f5572c013141 (diff)
don't alloc/free colors every time splitvertical is drawn
Diffstat (limited to 'render/theme.c')
-rw-r--r--render/theme.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/render/theme.c b/render/theme.c
index 70944944..0edc81d7 100644
--- a/render/theme.c
+++ b/render/theme.c
@@ -1797,6 +1797,33 @@ static gboolean read_appearance(XrmDatabase db, const RrInstance *inst,
value->surface.bevel_light_adjust = i;
if (read_int(db, sname, &i) && i >= 0 && i <= 256)
value->surface.bevel_dark_adjust = i;
+
+ if (value->surface.grad == RR_SURFACE_SPLIT_VERTICAL) {
+ gint r, g, b;
+
+ r = value->surface.primary->r;
+ r += r >> 2;
+ g = value->surface.primary->g;
+ g += g >> 2;
+ b = value->surface.primary->b;
+ b += b >> 2;
+ if (r > 0xFF) r = 0xFF;
+ if (g > 0xFF) g = 0xFF;
+ if (b > 0xFF) b = 0xFF;
+ value->surface.split_primary = RrColorNew(inst, r, g, b);
+
+ r = value->surface.secondary->r;
+ r += r >> 4;
+ g = value->surface.secondary->g;
+ g += g >> 4;
+ b = value->surface.secondary->b;
+ b += b >> 4;
+ if (r > 0xFF) r = 0xFF;
+ if (g > 0xFF) g = 0xFF;
+ if (b > 0xFF) b = 0xFF;
+ value->surface.split_secondary = RrColorNew(inst, r, g, b);
+ }
+
ret = TRUE;
}