Use Button1 to open thumbnail
This commit is contained in:
		
							parent
							
								
									f08c24bbb3
								
							
						
					
					
						commit
						6adbb3831d
					
				
							
								
								
									
										97
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										97
									
								
								main.c
									
									
									
									
									
								
							| @ -268,11 +268,11 @@ void redraw() { | ||||
| } | ||||
| 
 | ||||
| void on_keypress(XKeyEvent *kev) { | ||||
| 	int sel, x, y; | ||||
| 	int x, y; | ||||
| 	unsigned int w, h; | ||||
| 	char key; | ||||
| 	KeySym ksym; | ||||
| 	int changed; | ||||
| 	int changed, sel; | ||||
| 
 | ||||
| 	if (!kev) | ||||
| 		return; | ||||
| @ -439,7 +439,7 @@ void on_keypress(XKeyEvent *kev) { | ||||
| } | ||||
| 
 | ||||
| void on_buttonpress(XButtonEvent *bev) { | ||||
| 	int changed; | ||||
| 	int changed, sel; | ||||
| 	unsigned int mask; | ||||
| 
 | ||||
| 	if (!bev) | ||||
| @ -448,46 +448,61 @@ void on_buttonpress(XButtonEvent *bev) { | ||||
| 	mask = CLEANMASK(bev->state); | ||||
| 	changed = 0; | ||||
| 
 | ||||
| 	switch (bev->button) { | ||||
| 		case Button1: | ||||
| 			if (fileidx + 1 < filecnt) { | ||||
| 				++fileidx; | ||||
| 				changed = load_image(); | ||||
| 			} | ||||
| 			break; | ||||
| 		case Button2: | ||||
| 			mox = bev->x; | ||||
| 			moy = bev->y; | ||||
| 			win_set_cursor(&win, CURSOR_HAND); | ||||
| 			break; | ||||
| 		case Button3: | ||||
| 			if (fileidx > 0) { | ||||
| 				--fileidx; | ||||
| 				changed = load_image(); | ||||
| 			} | ||||
| 			break; | ||||
| 		case Button4: | ||||
| 			if (mask == ControlMask) | ||||
| 				changed = img_zoom_in(&img); | ||||
| 			else if (mask == ShiftMask) | ||||
| 	if (mode == MODE_NORMAL) { | ||||
| 		switch (bev->button) { | ||||
| 			case Button1: | ||||
| 				if (fileidx + 1 < filecnt) { | ||||
| 					++fileidx; | ||||
| 					changed = load_image(); | ||||
| 				} | ||||
| 				break; | ||||
| 			case Button2: | ||||
| 				mox = bev->x; | ||||
| 				moy = bev->y; | ||||
| 				win_set_cursor(&win, CURSOR_HAND); | ||||
| 				break; | ||||
| 			case Button3: | ||||
| 				if (fileidx > 0) { | ||||
| 					--fileidx; | ||||
| 					changed = load_image(); | ||||
| 				} | ||||
| 				break; | ||||
| 			case Button4: | ||||
| 				if (mask == ControlMask) | ||||
| 					changed = img_zoom_in(&img); | ||||
| 				else if (mask == ShiftMask) | ||||
| 					changed = img_pan(&img, &win, PAN_LEFT); | ||||
| 				else | ||||
| 					changed = img_pan(&img, &win, PAN_UP); | ||||
| 				break; | ||||
| 			case Button5: | ||||
| 				if (mask == ControlMask) | ||||
| 					changed = img_zoom_out(&img); | ||||
| 				else if (mask == ShiftMask) | ||||
| 					changed = img_pan(&img, &win, PAN_RIGHT); | ||||
| 				else | ||||
| 					changed = img_pan(&img, &win, PAN_DOWN); | ||||
| 				break; | ||||
| 			case 6: | ||||
| 				changed = img_pan(&img, &win, PAN_LEFT); | ||||
| 			else | ||||
| 				changed = img_pan(&img, &win, PAN_UP); | ||||
| 			break; | ||||
| 		case Button5: | ||||
| 			if (mask == ControlMask) | ||||
| 				changed = img_zoom_out(&img); | ||||
| 			else if (mask == ShiftMask) | ||||
| 				break; | ||||
| 			case 7: | ||||
| 				changed = img_pan(&img, &win, PAN_RIGHT); | ||||
| 			else | ||||
| 				changed = img_pan(&img, &win, PAN_DOWN); | ||||
| 			break; | ||||
| 		case 6: | ||||
| 			changed = img_pan(&img, &win, PAN_LEFT); | ||||
| 			break; | ||||
| 		case 7: | ||||
| 			changed = img_pan(&img, &win, PAN_RIGHT); | ||||
| 			break; | ||||
| 				break; | ||||
| 		} | ||||
| 	} else { | ||||
| 		/* thumbnail mode */ | ||||
| 		switch (bev->button) { | ||||
| 			case Button1: | ||||
| 				if ((sel = tns_translate(&tns, bev->x, bev->y)) >= 0) { | ||||
| 					fileidx = sel; | ||||
| 					load_image(); | ||||
| 					mode = MODE_NORMAL; | ||||
| 					changed = 1; | ||||
| 					break; | ||||
| 				} | ||||
| 				break; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if (changed) | ||||
|  | ||||
							
								
								
									
										16
									
								
								thumbs.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								thumbs.c
									
									
									
									
									
								
							| @ -170,3 +170,19 @@ void tns_move_selection(tns_t *tns, win_t *win, movedir_t dir) { | ||||
| 			break; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| int tns_translate(tns_t *tns, int x, int y) { | ||||
| 	int n; | ||||
| 	thumb_t *t; | ||||
| 
 | ||||
| 	if (!tns || x < 5 || y < 5) | ||||
| 		return -1; | ||||
| 
 | ||||
| 	if ((n = y / thumb_dim * tns-> cols + x / thumb_dim) < tns->cnt) { | ||||
| 		t = &tns->thumbs[n]; | ||||
| 		if (x > t->x && x < t->x + t->w && y > t->y && y < t->y + t->h) | ||||
| 			return n; | ||||
| 	} | ||||
| 
 | ||||
| 	return -1; | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Bert
						Bert