diff options
author | Bert <ber.t@gmx.com> | 2011-03-09 10:08:43 +0100 |
---|---|---|
committer | Bert <ber.t@gmx.com> | 2011-03-09 10:08:43 +0100 |
commit | a82c45431bd31bfedaad00d77cc2ab4c772774d0 (patch) | |
tree | c3428f470a085182123862bfb9f3d1d495dc8d1d | |
parent | 00d4b0f7cf6742a66f2bac262d5a3b3a9d0cc275 (diff) |
Use ctrl for ext cmds, disable them in config.h
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | commands.h | 10 | ||||
-rw-r--r-- | config.h | 4 | ||||
-rw-r--r-- | main.c | 38 |
4 files changed, 34 insertions, 20 deletions
@@ -1,6 +1,6 @@ all: sxiv -VERSION=git-20110303 +VERSION=git-20110309 CC?=gcc PREFIX?=/usr/local @@ -5,9 +5,9 @@ typedef struct { } command_t; static command_t commands[] = { - /* key reload? command, '#' is replaced by filename */ - { XK_a, True, "jpegtran -rotate 270 -copy all -outfile # #" }, - { XK_s, True, "jpegtran -rotate 90 -copy all -outfile # #" }, - { XK_A, True, "mogrify -rotate -90 #" }, - { XK_S, True, "mogrify -rotate +90 #" } + /* ctrl-... reload? command, '#' is replaced by filename */ + { XK_comma, True, "jpegtran -rotate 270 -copy all -outfile # #" }, + { XK_period, True, "jpegtran -rotate 90 -copy all -outfile # #" }, + { XK_less, True, "mogrify -rotate -90 #" }, + { XK_greater, True, "mogrify -rotate +90 #" } }; @@ -24,3 +24,7 @@ static const float zoom_levels[] = { /* default dimension of thumbnails (width == height): */ #define THUMB_SIZE 60 + +/* remove this line to disable external commands: * + * (otherwise have a look at commands.h to define them) */ +#define EXT_COMMANDS @@ -30,12 +30,16 @@ #include <X11/Xutil.h> #include <X11/keysym.h> +#include "config.h" #include "image.h" #include "options.h" #include "thumbs.h" #include "util.h" #include "window.h" + +#ifdef EXT_COMMANDS #include "commands.h" +#endif typedef enum { MODE_NORMAL = 0, @@ -273,6 +277,7 @@ void read_dir_rec(const char *dirname) { free(dirnames); } +#ifdef EXT_COMMANDS int run_command(const char *cline, Bool reload) { int fncnt, fnlen; char *cn, *cmdline; @@ -328,6 +333,7 @@ int run_command(const char *cline, Bool reload) { free(cmdline); return ret; } +#endif /* EXT_COMMANDS */ /* event handling */ @@ -352,7 +358,7 @@ void redraw() { } void on_keypress(XKeyEvent *kev) { - int i, x, y; + int x, y; unsigned int w, h; char key; KeySym ksym; @@ -364,24 +370,28 @@ void on_keypress(XKeyEvent *kev) { XLookupString(kev, &key, 1, &ksym, NULL); changed = 0; +#ifdef EXT_COMMANDS /* external commands from commands.h */ - for (i = 0; i < LEN(commands); ++i) { - if (commands[i].ksym == ksym) { - win_set_cursor(&win, CURSOR_WATCH); - if (run_command(commands[i].cmdline, commands[i].reload)) { - if (mode == MODE_NORMAL) { - img_close(&img, 1); - load_image(fileidx); - tns_load(&tns, &win, fileidx, filenames[fileidx]); - } else { - tns_load(&tns, &win, tns.sel, filenames[tns.sel]); + if (CLEANMASK(kev->state) & ControlMask) { + for (x = 0; x < LEN(commands); ++x) { + if (commands[x].ksym == ksym) { + win_set_cursor(&win, CURSOR_WATCH); + if (run_command(commands[x].cmdline, commands[x].reload)) { + if (mode == MODE_NORMAL) { + img_close(&img, 1); + load_image(fileidx); + tns_load(&tns, &win, fileidx, filenames[fileidx]); + } else { + tns_load(&tns, &win, tns.sel, filenames[tns.sel]); + } + redraw(); } - redraw(); + win_set_cursor(&win, mode == MODE_NORMAL ? CURSOR_NONE : CURSOR_ARROW); + return; } - win_set_cursor(&win, mode == MODE_NORMAL ? CURSOR_NONE : CURSOR_ARROW); - return; } } +#endif if (mode == MODE_NORMAL) { switch (ksym) { |