]> Dogcows Code - chaz/openbox/blobdiff - render/render.c
add copyright headers, adjust --version output to include copyright, and --help outpu...
[chaz/openbox] / render / render.c
index 2cfb70c766a2082f0e1fa2ebe7488782a30fb2e6..5a7f0c9a44f82624dbe8059c12f0a94510e3553a 100644 (file)
@@ -1,3 +1,22 @@
+/* -*- indent-tabs-mode: t; tab-width: 4; c-basic-offset: 4; -*-
+
+   render.c for the Openbox window manager
+   Copyright (c) 2003        Ben Jansens
+   Copyright (c) 2003        Derek Foreman
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   See the COPYING file for a copy of the GNU General Public License.
+*/
+
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 
@@ -109,7 +128,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 +224,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 +380,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 +404,9 @@ gboolean RrPixmapToRGBA(const RrInstance *inst,
     *w = pw;
     *h = ph;
 
+    XDestroyImage(xi);
+    if (mask)
+        XDestroyImage(xm);
+
     return TRUE;
 }
This page took 0.023375 seconds and 4 git commands to generate.