nsxiv5367b75
(Un)mark thumbnails while holding Button3 down
+13 −4
1 file changed
- M main.c +13 −4
| @@ -663,10 +663,19 @@ void on_buttonpress(XButtonEvent *bev) | |||
| 663 | 663 | break; | |
| 664 | 664 | case Button3: | |
| 665 | 665 | if ((sel = tns_translate(&tns, bev->x, bev->y)) >= 0) { | |
| 666 | − | files[sel].flags ^= FF_MARK; | |
| 667 | − | markcnt += files[sel].flags & FF_MARK ? 1 : -1; | |
| 668 | − | tns_mark(&tns, sel, !!(files[sel].flags & FF_MARK)); | |
| 669 | − | redraw(); | |
| 666 | + | bool on = !(files[sel].flags & FF_MARK); | |
| 667 | + | XEvent e; | |
| 668 | + | ||
| 669 | + | for (;;) { | |
| 670 | + | if (sel >= 0 && mark_image(sel, on)) | |
| 671 | + | redraw(); | |
| 672 | + | XMaskEvent(win.env.dpy, | |
| 673 | + | ButtonPressMask | ButtonReleaseMask | PointerMotionMask, &e); | |
| 674 | + | if (e.type == ButtonPress || e.type == ButtonRelease) | |
| 675 | + | break; | |
| 676 | + | while (XCheckTypedEvent(win.env.dpy, MotionNotify, &e)); | |
| 677 | + | sel = tns_translate(&tns, e.xbutton.x, e.xbutton.y); | |
| 678 | + | } | |
| 670 | 679 | } | |
| 671 | 680 | break; | |
| 672 | 681 | case Button4: | |