diff --git a/src/conio/x_events.c b/src/conio/x_events.c index 9061eed5e49b6706bd75cc2c7eb135be7b07f28c..3f377626eb892d07f573a3072690c2c5a95bac5d 100644 --- a/src/conio/x_events.c +++ b/src/conio/x_events.c @@ -789,6 +789,7 @@ local_draw_rect(struct rectlist *rect) dh = source->h; } else { + source = NULL; cleft = w; ctop = h; source_data = rect->data; @@ -892,14 +893,18 @@ local_draw_rect(struct rectlist *rect) if (x_internal_scaling || xrender_found == false) { if (last == NULL) x11.XPutImage(dpy, win, gc, xim, 0, 0, xoff, yoff, source->w, source->h); - else + else { release_buffer(last); + last = NULL; + } } else { #ifdef WITH_XRENDER bitmap_drv_free_rect(rect); - if (last != NULL) + if (last != NULL) { release_buffer(last); + last = NULL; + } x11.XPutImage(dpy, xrender_pm, gc, xim, 0, 0, 0, 0, dw, dh); x11.XRenderComposite(dpy, PictOpSrc, xrender_src_pict, 0, xrender_dst_pict, 0, 0, 0, 0, 0, 0,