diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-03-17 00:18:03 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-03-17 00:18:03 +0000 |
| commit | 3232247b0c36cf1b5b5e11c8cb03c8e0c457abdd (patch) | |
| tree | d626a01ffeab88bda1f696bfd0965101bba71c82 | |
| parent | 717c0fa62c1a725b6cb2903574ef9738bd6df0c3 (diff) | |
dont delete the pixmap until after changeing the visible one
| -rw-r--r-- | render/render.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/render/render.c b/render/render.c index ebd681ea..ac5e0023 100644 --- a/render/render.c +++ b/render/render.c @@ -57,13 +57,14 @@ void x_paint(Window win, Appearance *l, int w, int h) { int i; XImage *im; + Pixmap oldp; if (w <= 0 || h <= 0) return; g_assert(l->surface.type == Surface_Planar); // printf("painting window %ld\n", win); - if (l->pixmap != None) XFreePixmap(ob_display, l->pixmap); + oldp = l->pixmap; /* save to free after changing the visible pixmap */ l->pixmap = XCreatePixmap(ob_display, ob_root, w, h, render_depth); g_assert(l->pixmap != None); @@ -105,6 +106,7 @@ void x_paint(Window win, Appearance *l, int w, int h) } XSetWindowBackgroundPixmap(ob_display, win, l->pixmap); XClearWindow(ob_display, win); + if (oldp != None) XFreePixmap(ob_display, oldp); } /* |
