summaryrefslogtreecommitdiff
path: root/render/render.c
diff options
context:
space:
mode:
authorDerek Foreman <manmower@gmail.com>2003-04-02 00:17:35 +0000
committerDerek Foreman <manmower@gmail.com>2003-04-02 00:17:35 +0000
commit4213b558bfcacb32e3c1dbdcbf9d6fb19111cf2a (patch)
treee9bb1d4144a549163a35024809a3479f023aa668 /render/render.c
parent2517e30755d124e1fb2f361e22e91917a24edc9a (diff)
let there be parentrelative
Diffstat (limited to 'render/render.c')
-rw-r--r--render/render.c12
1 files changed, 8 insertions, 4 deletions
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);