From 5367b75867ccee99dcc5730bf04e3f3b10b4138d Mon Sep 17 00:00:00 2001 From: Bert Münnich Date: Sat, 9 Jun 2018 13:18:18 +0200 Subject: (Un)mark thumbnails while holding Button3 down --- main.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/main.c b/main.c index 190ca29..c6da126 100644 --- a/main.c +++ b/main.c @@ -663,10 +663,19 @@ void on_buttonpress(XButtonEvent *bev) break; case Button3: if ((sel = tns_translate(&tns, bev->x, bev->y)) >= 0) { - files[sel].flags ^= FF_MARK; - markcnt += files[sel].flags & FF_MARK ? 1 : -1; - tns_mark(&tns, sel, !!(files[sel].flags & FF_MARK)); - redraw(); + bool on = !(files[sel].flags & FF_MARK); + XEvent e; + + for (;;) { + if (sel >= 0 && mark_image(sel, on)) + redraw(); + XMaskEvent(win.env.dpy, + ButtonPressMask | ButtonReleaseMask | PointerMotionMask, &e); + if (e.type == ButtonPress || e.type == ButtonRelease) + break; + while (XCheckTypedEvent(win.env.dpy, MotionNotify, &e)); + sel = tns_translate(&tns, e.xbutton.x, e.xbutton.y); + } } break; case Button4: -- cgit v1.2.3-54-g00ecf