always redraw images
authorMarkus Teich <markus.teich@stusta.mhn.de>
Mon, 26 Sep 2016 10:26:11 +0000 (12:26 +0200)
committerMarkus Teich <markus.teich@stusta.mhn.de>
Mon, 26 Sep 2016 10:26:11 +0000 (12:26 +0200)
Previously when covering the sent window with an image slide selected and
exposing it again, the image was lost. This change always redraws the image and
also removes the now redundant bit flag in the state enum.

sent.c

diff --git a/sent.c b/sent.c
index fc319bef7792f62c2d98be39c7cae857960abb0e..82acd81c5e5809a8f79dd2dfbf248910c32cfc3d 100644 (file)
--- a/sent.c
+++ b/sent.c
@@ -33,7 +33,6 @@ char *argv0;
 typedef enum {
        NONE = 0,
        SCALED = 1,
-       DRAWN = 2
 } imgstate;
 
 typedef struct {
@@ -320,7 +319,6 @@ ffdraw(Image *img)
        XPutImage(xw.dpy, xw.win, d->gc, img->ximg, 0, 0,
                  xoffset, yoffset, img->ximg->width, img->ximg->height);
        XFlush(xw.dpy);
-       img->state |= DRAWN;
 }
 
 void
@@ -441,7 +439,7 @@ advance(const Arg *arg)
        LIMIT(new_idx, 0, slidecount-1);
        if (new_idx != idx) {
                if (slides[idx].img)
-                       slides[idx].img->state &= ~(DRAWN | SCALED);
+                       slides[idx].img->state &= ~SCALED;
                idx = new_idx;
                ffload(&slides[idx]);
                xdraw();
@@ -514,8 +512,7 @@ xdraw()
        } else {
                if (!(im->state & SCALED))
                        ffprepare(im);
-               if (!(im->state & DRAWN))
-                       ffdraw(im);
+               ffdraw(im);
        }
 }
 
@@ -645,7 +642,7 @@ configure(XEvent *e)
 {
        resize(e->xconfigure.width, e->xconfigure.height);
        if (slides[idx].img)
-               slides[idx].img->state &= ~(DRAWN | SCALED);
+               slides[idx].img->state &= ~SCALED;
        xdraw();
 }