nsxivf2a3d73
New command: i_alternate, go to last image, issue #65
+14 −0
4 files changed
- M commands.c +10 −0
- M commands.h +1 −0
- M config.def.h +1 −0
- M main.c +2 −0
| @@ -46,6 +46,7 @@ extern win_t win; | |||
| 46 | 46 | ||
| 47 | 47 | extern fileinfo_t *files; | |
| 48 | 48 | extern int filecnt, fileidx; | |
| 49 | + | extern int alternate; | |
| 49 | 50 | ||
| 50 | 51 | extern int prefix; | |
| 51 | 52 | ||
| @@ -155,6 +156,15 @@ bool i_navigate(arg_t a) { | |||
| 155 | 156 | return false; | |
| 156 | 157 | } | |
| 157 | 158 | ||
| 159 | + | bool i_alternate(arg_t a) { | |
| 160 | + | if (mode == MODE_IMAGE) { | |
| 161 | + | load_image(alternate); | |
| 162 | + | return true; | |
| 163 | + | } else { | |
| 164 | + | return false; | |
| 165 | + | } | |
| 166 | + | } | |
| 167 | + | ||
| 158 | 168 | bool it_first(arg_t a) { | |
| 159 | 169 | if (mode == MODE_IMAGE && fileidx != 0) { | |
| 160 | 170 | load_image(0); | |
| @@ -49,6 +49,7 @@ bool t_reload_all(arg_t); | |||
| 49 | 49 | bool it_reload_image(arg_t); | |
| 50 | 50 | bool it_remove_image(arg_t); | |
| 51 | 51 | bool i_navigate(arg_t); | |
| 52 | + | bool i_alternate(arg_t); | |
| 52 | 53 | bool it_first(arg_t); | |
| 53 | 54 | bool it_n_or_last(arg_t); | |
| 54 | 55 | bool i_navigate_frame(arg_t); | |
| @@ -73,6 +73,7 @@ static const keymap_t keys[] = { | |||
| 73 | 73 | { false, XK_BackSpace, i_navigate, (arg_t) -1 }, | |
| 74 | 74 | { false, XK_bracketright, i_navigate, (arg_t) +10 }, | |
| 75 | 75 | { false, XK_bracketleft, i_navigate, (arg_t) -10 }, | |
| 76 | + | { true, XK_6, i_alternate, (arg_t) None }, | |
| 76 | 77 | { false, XK_g, it_first, (arg_t) None }, | |
| 77 | 78 | { false, XK_G, it_n_or_last, (arg_t) None }, | |
| 78 | 79 | ||
| @@ -62,6 +62,7 @@ win_t win; | |||
| 62 | 62 | ||
| 63 | 63 | fileinfo_t *files; | |
| 64 | 64 | int filecnt, fileidx; | |
| 65 | + | int alternate; | |
| 65 | 66 | size_t filesize; | |
| 66 | 67 | ||
| 67 | 68 | int prefix; | |
| @@ -217,6 +218,7 @@ void load_image(int new) { | |||
| 217 | 218 | } | |
| 218 | 219 | ||
| 219 | 220 | files[new].loaded = true; | |
| 221 | + | alternate = fileidx; | |
| 220 | 222 | fileidx = new; | |
| 221 | 223 | if (stat(files[new].path, &fstats) == 0) | |
| 222 | 224 | filesize = fstats.st_size; | |