nsxiv1de5f06
Set global markidx whenever a single img is (un)marked
This also sets *markidx* when using the right mouse button in thumbnail mode.
+4 −4
2 files changed
- M commands.c +3 −4
- M main.c +1 −0
| @@ -194,7 +194,6 @@ bool cg_zoom(arg_t d) | |||
| 194 | 194 | ||
| 195 | 195 | bool cg_toggle_image_mark(arg_t _) | |
| 196 | 196 | { | |
| 197 | − | markidx = fileidx; | |
| 198 | 197 | return mark_image(fileidx, !(files[fileidx].flags & FF_MARK)); | |
| 199 | 198 | } | |
| 200 | 199 | ||
| @@ -213,11 +212,11 @@ bool cg_reverse_marks(arg_t _) | |||
| 213 | 212 | ||
| 214 | 213 | bool cg_mark_range(arg_t _) | |
| 215 | 214 | { | |
| 216 | − | int i, d = fileidx < markidx ? 1 : -1; | |
| 215 | + | int d = markidx < fileidx ? 1 : -1; | |
| 217 | 216 | bool dirty = false, on = !!(files[markidx].flags & FF_MARK); | |
| 218 | 217 | ||
| 219 | − | for (i = fileidx; i != markidx; i += d) { | |
| 220 | − | if (mark_image(i, on)) | |
| 218 | + | while (markidx != fileidx) { | |
| 219 | + | if (mark_image(markidx + d, on)) | |
| 221 | 220 | dirty = true; | |
| 222 | 221 | } | |
| 223 | 222 | return dirty; | |
| @@ -323,6 +323,7 @@ void load_image(int new) | |||
| 323 | 323 | ||
| 324 | 324 | bool mark_image(int n, bool on) | |
| 325 | 325 | { | |
| 326 | + | markidx = n; | |
| 326 | 327 | if (!!(files[n].flags & FF_MARK) != on) { | |
| 327 | 328 | files[n].flags ^= FF_MARK; | |
| 328 | 329 | markcnt += on ? 1 : -1; | |