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;
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
+ + l->surface.data.planar.parentx
+ + sw * l->surface.data.planar.parenty;
+ dest = l->surface.data.planar.pixel_data;
+ for (i = 0; i < 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);