From 89ade7a8c1a5f825f61657cb185246cefbd4e96e Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Wed, 13 Jun 2007 13:48:00 +0000 Subject: don't alloc/free colors every time splitvertical is drawn --- render/theme.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'render/theme.c') 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; } -- cgit v1.2.3