call the correct function to destroy glxpixmaps
authorDerek Foreman <foremande@gmail.com>
Wed, 9 Jun 2010 21:31:52 +0000 (17:31 -0400)
committerDana Jansens <danakj@orodu.net>
Sat, 26 Jun 2010 23:30:46 +0000 (01:30 +0200)
openbox/composite.c
openbox/event.c
openbox/window.c

index db355346e0619d91b8b5d149e3864a80d51987f0..7675a42cfe5c522aad903d27558a375e1e1bb8ff 100644 (file)
@@ -303,6 +303,9 @@ static gboolean composite(gpointer data)
         else
             attribs[1] = GLX_TEXTURE_FORMAT_RGB_EXT;
 
+        if (win->pixmap == None)
+            win->pixmap = XCompositeNameWindowPixmap(obt_display, window_top(win));
+
         if (win->gpixmap == None)
             win->gpixmap = obcomp.CreatePixmap(obt_display, obcomp.PixmapConfig[win->depth], win->pixmap, attribs);
 
index 3fba27f63a9e4b7f06753a973c49a299ef62b9f7..871d0e8423817f9d33fff901404936875b52ab1d 100644 (file)
@@ -624,11 +624,12 @@ static void event_process(const XEvent *ec, gpointer data)
 #ifdef USE_COMPOSITING
     else if ((e->type == ConfigureNotify || e->type == MapNotify)
              && obwin && obwin->type != OB_WINDOW_CLASS_PROMPT) {
-        if (obwin->pixmap != None)
+        if (obwin->pixmap != None) {
             XFreePixmap(obt_display, obwin->pixmap);
-        obwin->pixmap = XCompositeNameWindowPixmap(obt_display, window_top(obwin));
+            obwin->pixmap = None;
+        }
         if (obwin->gpixmap != None) {
-            XFreePixmap(obt_display, obwin->gpixmap);
+            glXDestroyGLXPixmap(obt_display, obwin->gpixmap);
             obwin->gpixmap = None;
         }
 
index f28bd43e2c054dcd074c577f956420ac545796c3..bb5ed08e7981c522a7d0b9adf65bad1f9ff15098 100644 (file)
@@ -129,7 +129,7 @@ void window_remove(Window xwin)
         if (win->damage)
             XDamageDestroy(obt_display, win->damage);
         if (win->gpixmap)
-            XFreePixmap(obt_display, win->gpixmap);
+            glXDestroyGLXPixmap(obt_display, win->gpixmap);
         if (win->pixmap)
             XFreePixmap(obt_display, win->pixmap);
         if (win->texture)