summaryrefslogtreecommitdiff
path: root/render/render.c
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@comhem.se>2008-02-07 15:28:18 +0100
committerMikael Magnusson <mikachu@comhem.se>2008-02-07 15:28:18 +0100
commitf6193ad9e048c5824142d3e7feeb109f91054052 (patch)
tree2afdebe7db3494a5c30330d198a3051076fda8c6 /render/render.c
parenta3babc4a995d31e44a626448e28d607be3c33197 (diff)
parentde85e4f1d96c911c7c9dc7c2a9b514b13b028aec (diff)
Merge branch 'wip/alttab'
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 75dead16..49485c8a 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;
}