New mappings: ctrl-[hjkl], pan image one window width/height
This commit is contained in:
		
							parent
							
								
									ea23115af4
								
							
						
					
					
						commit
						a6100373c1
					
				
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @ -1,6 +1,6 @@ | |||||||
| all: sxiv | all: sxiv | ||||||
| 
 | 
 | ||||||
| VERSION=git-20110529 | VERSION=git-20110603 | ||||||
| 
 | 
 | ||||||
| CC?=gcc | CC?=gcc | ||||||
| DESTDIR?= | DESTDIR?= | ||||||
|  | |||||||
| @ -69,6 +69,8 @@ thumbnail mode are denoted via brackets: | |||||||
|     h,j,k,l      Pan image [move selection] left/down/up/right |     h,j,k,l      Pan image [move selection] left/down/up/right | ||||||
|                  (also with arrow keys) |                  (also with arrow keys) | ||||||
|     H,J,K,L      Pan to left/bottom/top/right image edge |     H,J,K,L      Pan to left/bottom/top/right image edge | ||||||
|  |     Ctrl-h,j,k,l Pan image one window width/height left/down/up/right | ||||||
|  |                  (also with Ctrl-arrow keys) | ||||||
| 
 | 
 | ||||||
|     <,>          Rotate image (counter-)clockwise by 90 degrees |     <,>          Rotate image (counter-)clockwise by 90 degrees | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								image.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								image.c
									
									
									
									
									
								
							| @ -275,19 +275,19 @@ int img_move(img_t *img, win_t *win, int dx, int dy) { | |||||||
| 	return ox != img->x || oy != img->y; | 	return ox != img->x || oy != img->y; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int img_pan(img_t *img, win_t *win, pandir_t dir) { | int img_pan(img_t *img, win_t *win, pandir_t dir, int page) { | ||||||
| 	if (!img || !img->im || !win) | 	if (!img || !img->im || !win) | ||||||
| 		return 0; | 		return 0; | ||||||
| 
 | 
 | ||||||
| 	switch (dir) { | 	switch (dir) { | ||||||
| 		case PAN_LEFT: | 		case PAN_LEFT: | ||||||
| 			return img_move(img, win, win->w / 5, 0); | 			return img_move(img, win, win->w / (page ? 1 : 5), 0); | ||||||
| 		case PAN_RIGHT: | 		case PAN_RIGHT: | ||||||
| 			return img_move(img, win, win->w / 5 * -1, 0); | 			return img_move(img, win, win->w / (page ? 1 : 5) * -1, 0); | ||||||
| 		case PAN_UP: | 		case PAN_UP: | ||||||
| 			return img_move(img, win, 0, win->h / 5); | 			return img_move(img, win, 0, win->h / (page ? 1 : 5)); | ||||||
| 		case PAN_DOWN: | 		case PAN_DOWN: | ||||||
| 			return img_move(img, win, 0, win->h / 5 * -1); | 			return img_move(img, win, 0, win->h / (page ? 1 : 5) * -1); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								image.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								image.h
									
									
									
									
									
								
							| @ -68,7 +68,7 @@ int img_zoom_in(img_t*, win_t*); | |||||||
| int img_zoom_out(img_t*, win_t*); | int img_zoom_out(img_t*, win_t*); | ||||||
| 
 | 
 | ||||||
| int img_move(img_t*, win_t*, int, int); | int img_move(img_t*, win_t*, int, int); | ||||||
| int img_pan(img_t*, win_t*, pandir_t); | int img_pan(img_t*, win_t*, pandir_t, int); | ||||||
| int img_pan_edge(img_t*, win_t*, pandir_t); | int img_pan_edge(img_t*, win_t*, pandir_t); | ||||||
| 
 | 
 | ||||||
| void img_rotate_left(img_t*, win_t*); | void img_rotate_left(img_t*, win_t*); | ||||||
|  | |||||||
							
								
								
									
										31
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								main.c
									
									
									
									
									
								
							| @ -357,17 +357,18 @@ void on_keypress(XKeyEvent *kev) { | |||||||
| 	unsigned int w, h; | 	unsigned int w, h; | ||||||
| 	char key; | 	char key; | ||||||
| 	KeySym ksym; | 	KeySym ksym; | ||||||
| 	int changed; | 	int changed, ctrl; | ||||||
| 
 | 
 | ||||||
| 	if (!kev) | 	if (!kev) | ||||||
| 		return; | 		return; | ||||||
| 	 | 	 | ||||||
| 	XLookupString(kev, &key, 1, &ksym, NULL); | 	XLookupString(kev, &key, 1, &ksym, NULL); | ||||||
| 	changed = 0; | 	changed = 0; | ||||||
|  | 	ctrl = CLEANMASK(kev->state) & ControlMask; | ||||||
| 
 | 
 | ||||||
| #if EXT_COMMANDS | #if EXT_COMMANDS | ||||||
| 	/* external commands from commands.h */ | 	/* external commands from commands.h */ | ||||||
| 	if (CLEANMASK(kev->state) & ControlMask) { | 	if (ctrl) { | ||||||
| 		for (x = 0; x < LEN(commands); ++x) { | 		for (x = 0; x < LEN(commands); ++x) { | ||||||
| 			if (commands[x].ksym == ksym) { | 			if (commands[x].ksym == ksym) { | ||||||
| 				win_set_cursor(&win, CURSOR_WATCH); | 				win_set_cursor(&win, CURSOR_WATCH); | ||||||
| @ -446,19 +447,25 @@ void on_keypress(XKeyEvent *kev) { | |||||||
| 			/* panning */ | 			/* panning */ | ||||||
| 			case XK_h: | 			case XK_h: | ||||||
| 			case XK_Left: | 			case XK_Left: | ||||||
| 				changed = img_pan(&img, &win, PAN_LEFT); | 				changed = img_pan(&img, &win, PAN_LEFT, ctrl); | ||||||
| 				break; | 				break; | ||||||
| 			case XK_j: | 			case XK_j: | ||||||
| 			case XK_Down: | 			case XK_Down: | ||||||
| 				changed = img_pan(&img, &win, PAN_DOWN); | 				changed = img_pan(&img, &win, PAN_DOWN, ctrl); | ||||||
| 				break; | 				break; | ||||||
| 			case XK_k: | 			case XK_k: | ||||||
| 			case XK_Up: | 			case XK_Up: | ||||||
| 				changed = img_pan(&img, &win, PAN_UP); | 				changed = img_pan(&img, &win, PAN_UP, ctrl); | ||||||
| 				break; | 				break; | ||||||
| 			case XK_l: | 			case XK_l: | ||||||
| 			case XK_Right: | 			case XK_Right: | ||||||
| 				changed = img_pan(&img, &win, PAN_RIGHT); | 				changed = img_pan(&img, &win, PAN_RIGHT, ctrl); | ||||||
|  | 				break; | ||||||
|  | 			case XK_Prior: | ||||||
|  | 				changed = img_pan(&img, &win, PAN_UP, 1); | ||||||
|  | 				break; | ||||||
|  | 			case XK_Next: | ||||||
|  | 				changed = img_pan(&img, &win, PAN_DOWN, 1); | ||||||
| 				break; | 				break; | ||||||
| 
 | 
 | ||||||
| 			case XK_H: | 			case XK_H: | ||||||
| @ -632,23 +639,23 @@ void on_buttonpress(XButtonEvent *bev) { | |||||||
| 				if (mask == ControlMask) | 				if (mask == ControlMask) | ||||||
| 					changed = img_zoom_in(&img, &win); | 					changed = img_zoom_in(&img, &win); | ||||||
| 				else if (mask == ShiftMask) | 				else if (mask == ShiftMask) | ||||||
| 					changed = img_pan(&img, &win, PAN_LEFT); | 					changed = img_pan(&img, &win, PAN_LEFT, 0); | ||||||
| 				else | 				else | ||||||
| 					changed = img_pan(&img, &win, PAN_UP); | 					changed = img_pan(&img, &win, PAN_UP, 0); | ||||||
| 				break; | 				break; | ||||||
| 			case Button5: | 			case Button5: | ||||||
| 				if (mask == ControlMask) | 				if (mask == ControlMask) | ||||||
| 					changed = img_zoom_out(&img, &win); | 					changed = img_zoom_out(&img, &win); | ||||||
| 				else if (mask == ShiftMask) | 				else if (mask == ShiftMask) | ||||||
| 					changed = img_pan(&img, &win, PAN_RIGHT); | 					changed = img_pan(&img, &win, PAN_RIGHT, 0); | ||||||
| 				else | 				else | ||||||
| 					changed = img_pan(&img, &win, PAN_DOWN); | 					changed = img_pan(&img, &win, PAN_DOWN, 0); | ||||||
| 				break; | 				break; | ||||||
| 			case 6: | 			case 6: | ||||||
| 				changed = img_pan(&img, &win, PAN_LEFT); | 				changed = img_pan(&img, &win, PAN_LEFT, 0); | ||||||
| 				break; | 				break; | ||||||
| 			case 7: | 			case 7: | ||||||
| 				changed = img_pan(&img, &win, PAN_RIGHT); | 				changed = img_pan(&img, &win, PAN_RIGHT, 0); | ||||||
| 				break; | 				break; | ||||||
| 		} | 		} | ||||||
| 	} else { | 	} else { | ||||||
|  | |||||||
							
								
								
									
										20
									
								
								sxiv.1
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								sxiv.1
									
									
									
									
									
								
							| @ -138,17 +138,29 @@ Pan image [move selection] up. | |||||||
| .BR l ", " Right | .BR l ", " Right | ||||||
| Pan image [move selection] right. | Pan image [move selection] right. | ||||||
| .TP | .TP | ||||||
| .BR H | .B H | ||||||
| Pan to left image edge. | Pan to left image edge. | ||||||
| .TP | .TP | ||||||
| .BR J | .B J | ||||||
| Pan to bottom image edge. | Pan to bottom image edge. | ||||||
| .TP | .TP | ||||||
| .BR K | .B K | ||||||
| Pan to top image edge. | Pan to top image edge. | ||||||
| .TP | .TP | ||||||
| .BR L | .B L | ||||||
| Pan to right image edge. | Pan to right image edge. | ||||||
|  | .TP | ||||||
|  | .BR Ctrl-h ", " Ctrl-Left | ||||||
|  | Pan image one window width left. | ||||||
|  | .TP | ||||||
|  | .BR Ctrl-j ", " Ctrl-Down ", " PageDn | ||||||
|  | Pan image one window height down. | ||||||
|  | .TP | ||||||
|  | .BR Ctrl-k ", " Ctrl-Up ", " PageUp | ||||||
|  | Pan image one window height up. | ||||||
|  | .TP | ||||||
|  | .BR Ctrl-l ", " Ctrl-Right | ||||||
|  | Pan image one window width right. | ||||||
| .SS Rotation | .SS Rotation | ||||||
| .TP | .TP | ||||||
| .B < | .B < | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Bert
						Bert