Use ctrl for ext cmds, disable them in config.h
This commit is contained in:
		
							parent
							
								
									00d4b0f7cf
								
							
						
					
					
						commit
						a82c45431b
					
				
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @ -1,6 +1,6 @@ | |||||||
| all: sxiv | all: sxiv | ||||||
| 
 | 
 | ||||||
| VERSION=git-20110303 | VERSION=git-20110309 | ||||||
| 
 | 
 | ||||||
| CC?=gcc | CC?=gcc | ||||||
| PREFIX?=/usr/local | PREFIX?=/usr/local | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								commands.h
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								commands.h
									
									
									
									
									
								
							| @ -5,9 +5,9 @@ typedef struct { | |||||||
| } command_t; | } command_t; | ||||||
| 
 | 
 | ||||||
| static command_t commands[] = { | static command_t commands[] = { | ||||||
| 	/* key          reload?  command, '#' is replaced by filename */ | 	/* ctrl-...     reload?  command, '#' is replaced by filename */ | ||||||
| 	{  XK_a,        True,    "jpegtran -rotate 270 -copy all -outfile # #" }, | 	{  XK_comma,    True,    "jpegtran -rotate 270 -copy all -outfile # #" }, | ||||||
| 	{  XK_s,        True,    "jpegtran -rotate 90 -copy all -outfile # #" }, | 	{  XK_period,   True,    "jpegtran -rotate 90 -copy all -outfile # #" }, | ||||||
| 	{  XK_A,        True,    "mogrify -rotate -90 #" }, | 	{  XK_less,     True,    "mogrify -rotate -90 #" }, | ||||||
| 	{  XK_S,        True,    "mogrify -rotate +90 #" } | 	{  XK_greater,  True,    "mogrify -rotate +90 #" } | ||||||
| }; | }; | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								config.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								config.h
									
									
									
									
									
								
							| @ -24,3 +24,7 @@ static const float zoom_levels[] = { | |||||||
| 
 | 
 | ||||||
| /* default dimension of thumbnails (width == height):    */ | /* default dimension of thumbnails (width == height):    */ | ||||||
| #define THUMB_SIZE  60 | #define THUMB_SIZE  60 | ||||||
|  | 
 | ||||||
|  | /* remove this line to disable external commands:        *
 | ||||||
|  |  * (otherwise have a look at commands.h to define them)  */ | ||||||
|  | #define EXT_COMMANDS | ||||||
|  | |||||||
							
								
								
									
										18
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								main.c
									
									
									
									
									
								
							| @ -30,12 +30,16 @@ | |||||||
| #include <X11/Xutil.h> | #include <X11/Xutil.h> | ||||||
| #include <X11/keysym.h> | #include <X11/keysym.h> | ||||||
| 
 | 
 | ||||||
|  | #include "config.h" | ||||||
| #include "image.h" | #include "image.h" | ||||||
| #include "options.h" | #include "options.h" | ||||||
| #include "thumbs.h" | #include "thumbs.h" | ||||||
| #include "util.h" | #include "util.h" | ||||||
| #include "window.h" | #include "window.h" | ||||||
|  | 
 | ||||||
|  | #ifdef EXT_COMMANDS | ||||||
| #include "commands.h" | #include "commands.h" | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| typedef enum { | typedef enum { | ||||||
| 	MODE_NORMAL = 0, | 	MODE_NORMAL = 0, | ||||||
| @ -273,6 +277,7 @@ void read_dir_rec(const char *dirname) { | |||||||
| 	free(dirnames); | 	free(dirnames); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | #ifdef EXT_COMMANDS | ||||||
| int run_command(const char *cline, Bool reload) { | int run_command(const char *cline, Bool reload) { | ||||||
| 	int fncnt, fnlen; | 	int fncnt, fnlen; | ||||||
| 	char *cn, *cmdline; | 	char *cn, *cmdline; | ||||||
| @ -328,6 +333,7 @@ int run_command(const char *cline, Bool reload) { | |||||||
| 	free(cmdline); | 	free(cmdline); | ||||||
| 	return ret; | 	return ret; | ||||||
| } | } | ||||||
|  | #endif /* EXT_COMMANDS */ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /* event handling */ | /* event handling */ | ||||||
| @ -352,7 +358,7 @@ void redraw() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void on_keypress(XKeyEvent *kev) { | void on_keypress(XKeyEvent *kev) { | ||||||
| 	int i, x, y; | 	int x, y; | ||||||
| 	unsigned int w, h; | 	unsigned int w, h; | ||||||
| 	char key; | 	char key; | ||||||
| 	KeySym ksym; | 	KeySym ksym; | ||||||
| @ -364,11 +370,13 @@ void on_keypress(XKeyEvent *kev) { | |||||||
| 	XLookupString(kev, &key, 1, &ksym, NULL); | 	XLookupString(kev, &key, 1, &ksym, NULL); | ||||||
| 	changed = 0; | 	changed = 0; | ||||||
| 
 | 
 | ||||||
|  | #ifdef EXT_COMMANDS | ||||||
| 	/* external commands from commands.h */ | 	/* external commands from commands.h */ | ||||||
| 	for (i = 0; i < LEN(commands); ++i) { | 	if (CLEANMASK(kev->state) & ControlMask) { | ||||||
| 		if (commands[i].ksym == ksym) { | 		for (x = 0; x < LEN(commands); ++x) { | ||||||
|  | 			if (commands[x].ksym == ksym) { | ||||||
| 				win_set_cursor(&win, CURSOR_WATCH); | 				win_set_cursor(&win, CURSOR_WATCH); | ||||||
| 			if (run_command(commands[i].cmdline, commands[i].reload)) { | 				if (run_command(commands[x].cmdline, commands[x].reload)) { | ||||||
| 					if (mode == MODE_NORMAL) { | 					if (mode == MODE_NORMAL) { | ||||||
| 						img_close(&img, 1); | 						img_close(&img, 1); | ||||||
| 						load_image(fileidx); | 						load_image(fileidx); | ||||||
| @ -382,6 +390,8 @@ void on_keypress(XKeyEvent *kev) { | |||||||
| 				return; | 				return; | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  | 	} | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| 	if (mode == MODE_NORMAL) { | 	if (mode == MODE_NORMAL) { | ||||||
| 		switch (ksym) { | 		switch (ksym) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Bert
						Bert