X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=render%2Frender.c;h=c1ed1e114a127c6e813bff67b81f7baab9e8a705;hb=46d99fbaff396d7b596ece772a6349753c11a135;hp=2cfb70c766a2082f0e1fa2ebe7488782a30fb2e6;hpb=e9c1e44e680e8f4ddaf3622c287e419d488256eb;p=chaz%2Fopenbox diff --git a/render/render.c b/render/render.c index 2cfb70c7..c1ed1e11 100644 --- a/render/render.c +++ b/render/render.c @@ -109,7 +109,9 @@ void RrPaint(RrAppearance *a, Window win, gint w, gint h) case RR_TEXTURE_RGBA: g_assert(!transferred); RrImageDraw(a->surface.pixel_data, - &a->texture[i].data.rgba, &tarea); + &a->texture[i].data.rgba, + a->w, a->h, + &tarea); break; } } @@ -203,7 +205,6 @@ RrAppearance *RrAppearanceCopy(RrAppearance *orig) orig->textures * sizeof(RrTexture)); for (i = 0; i < copy->textures; ++i) if (copy->texture[i].type == RR_TEXTURE_RGBA) { - g_free(copy->texture[i].data.rgba.cache); copy->texture[i].data.rgba.cache = NULL; } copy->pixmap = None; @@ -360,8 +361,10 @@ gboolean RrPixmapToRGBA(const RrInstance *inst, if (mask) { xm = XGetImage(RrDisplay(inst), mask, 0, 0, mw, mh, 0xffffffff, ZPixmap); - if (!xm) + if (!xm) { + XDestroyImage(xi); return FALSE; + } } *data = g_new(RrPixel32, pw * ph); @@ -382,5 +385,9 @@ gboolean RrPixmapToRGBA(const RrInstance *inst, *w = pw; *h = ph; + XDestroyImage(xi); + if (mask) + XDestroyImage(xm); + return TRUE; }