From: Derek Foreman Date: Wed, 2 Apr 2003 00:17:35 +0000 (+0000) Subject: let there be parentrelative X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=4213b558bfcacb32e3c1dbdcbf9d6fb19111cf2a;p=chaz%2Fopenbox let there be parentrelative --- diff --git a/render/render.c b/render/render.c index 9d4a2c67..4c77cfb1 100644 --- a/render/render.c +++ b/render/render.c @@ -89,13 +89,14 @@ void truecolor_startup(void) void x_paint(Window win, Appearance *l) { - int i, transferred = 0, sw, sh; - pixel32 *source; + int i, transferred = 0, sw; + pixel32 *source, *dest; Pixmap oldp; int x = l->area.x; int y = l->area.y; int w = l->area.width; int h = l->area.height; + int parenty = l->surface.data.planar.parenty; if (w <= 0 || h <= 0 || x+w <= 0 || y+h <= 0) return; @@ -117,8 +118,11 @@ void x_paint(Window win, Appearance *l) if (l->surface.data.planar.grad == Background_ParentRelative) { sw = l->surface.data.planar.parent->area.width; - source = l->surface.data.planar.pixel_data; -/* for (i = */ + source = l->surface.data.planar.parent->surface.data.planar.pixel_data; + dest = l->surface.data.planar.pixel_data; + for (i = parenty; i < parenty + h; i++, source += sw, dest += w) { + memcpy(dest, source, w * sizeof(pixel32)); + } } else if (l->surface.data.planar.grad == Background_Solid) gradient_solid(l, x, y, w, h);