summaryrefslogtreecommitdiff
path: root/render/render.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-02-14 14:44:17 -0500
committerDana Jansens <danakj@orodu.net>2008-02-14 14:44:17 -0500
commit512d93afcc3e7dd5caa42cdb69508964c6338f3d (patch)
treed32d92f220408fef3950579684ea2c9a794c7eb5 /render/render.c
parente06ddf9f22bca1aefd4e6664aa54eea13543aade (diff)
backport the changes to render/ from the alttab branch (commit 3592046b2b26e05ee94c0dd0fed5b7fd5475c198) in master, as the iconcache changes depend on this
git show 3592046b -- render
Diffstat (limited to 'render/render.c')
-rw-r--r--render/render.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/render/render.c b/render/render.c
index 2813dda0..b81e80a6 100644
--- a/render/render.c
+++ b/render/render.c
@@ -132,10 +132,20 @@ Pixmap RrPaintPixmap(RrAppearance *a, gint w, gint h)
break;
case RR_TEXTURE_RGBA:
g_assert(!transferred);
- RrImageDraw(a->surface.pixel_data,
- &a->texture[i].data.rgba,
- a->w, a->h,
- &tarea);
+ {
+ RrRect narea = tarea;
+ RrTextureRGBA *rgb = &a->texture[i].data.rgba;
+ if (rgb->twidth)
+ narea.width = MIN(tarea.width, rgb->twidth);
+ if (rgb->theight)
+ narea.height = MIN(tarea.height, rgb->theight);
+ narea.x += rgb->tx;
+ narea.y += rgb->ty;
+ RrImageDraw(a->surface.pixel_data,
+ &a->texture[i].data.rgba,
+ a->w, a->h,
+ &narea);
+ }
force_transfer = 1;
break;
}