Replace -w with well-known geometry option
This commit is contained in:
		
							parent
							
								
									c937570bbe
								
							
						
					
					
						commit
						229830ad18
					
				
							
								
								
									
										4
									
								
								image.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								image.c
									
									
									
									
									
								
							| @ -254,11 +254,11 @@ int img_pan(img_t *img, win_t *win, pandir_t dir) { | ||||
| 		case PAN_LEFT: | ||||
| 			return img_move(img, win, win->w / 5, 0); | ||||
| 		case PAN_RIGHT: | ||||
| 			return img_move(img, win, -win->w / 5, 0); | ||||
| 			return img_move(img, win, win->w / 5 * -1, 0); | ||||
| 		case PAN_UP: | ||||
| 			return img_move(img, win, 0, win->h / 5); | ||||
| 		case PAN_DOWN: | ||||
| 			return img_move(img, win, 0, -win->h / 5); | ||||
| 			return img_move(img, win, 0, win->h / 5 * -1); | ||||
| 	} | ||||
| 
 | ||||
| 	return 0; | ||||
|  | ||||
							
								
								
									
										28
									
								
								options.c
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								options.c
									
									
									
									
									
								
							| @ -29,7 +29,7 @@ options_t _options; | ||||
| const options_t *options = (const options_t*) &_options; | ||||
| 
 | ||||
| void print_usage() { | ||||
| 	printf("usage: sxiv [-dfhpsvWZ] [-w WIDTH[xHEIGHT]] [-z ZOOM] FILES...\n"); | ||||
| 	printf("usage: sxiv [-dfhpsvWZ] [-g GEOMETRY] [-z ZOOM] FILES...\n"); | ||||
| } | ||||
| 
 | ||||
| void print_version() { | ||||
| @ -38,7 +38,6 @@ void print_version() { | ||||
| } | ||||
| 
 | ||||
| void parse_options(int argc, char **argv) { | ||||
| 	unsigned short w, h; | ||||
| 	float z; | ||||
| 	int opt; | ||||
| 
 | ||||
| @ -46,13 +45,12 @@ void parse_options(int argc, char **argv) { | ||||
| 	_options.zoom = 1.0; | ||||
| 	_options.aa = 1; | ||||
| 
 | ||||
| 	_options.winw = w = 0; | ||||
| 	_options.winh = h = 0; | ||||
| 	_options.fullscreen = 0; | ||||
| 	_options.geometry = NULL; | ||||
| 
 | ||||
| 	_options.warn = 0; | ||||
| 
 | ||||
| 	while ((opt = getopt(argc, argv, "dfhpsvWw:Zz:")) != -1) { | ||||
| 	while ((opt = getopt(argc, argv, "dfg:hpsvWZz:")) != -1) { | ||||
| 		switch (opt) { | ||||
| 			case '?': | ||||
| 				print_usage(); | ||||
| @ -63,6 +61,9 @@ void parse_options(int argc, char **argv) { | ||||
| 			case 'f': | ||||
| 				_options.fullscreen = 1; | ||||
| 				break; | ||||
| 			case 'g': | ||||
| 				_options.geometry = optarg; | ||||
| 				break; | ||||
| 			case 'h': | ||||
| 				print_usage(); | ||||
| 				exit(0); | ||||
| @ -78,16 +79,6 @@ void parse_options(int argc, char **argv) { | ||||
| 			case 'W': | ||||
| 				_options.warn = 1; | ||||
| 				break; | ||||
| 			case 'w': | ||||
| 				if (!sscanf(optarg, "%hux%hu", &w, &h)) { | ||||
| 					fprintf(stderr, "sxiv: invalid argument for option -w: %s\n", | ||||
| 					        optarg); | ||||
| 					exit(1); | ||||
| 				} else { | ||||
| 					_options.winw = (int) w; | ||||
| 					_options.winh = (int) h; | ||||
| 				} | ||||
| 				break; | ||||
| 			case 'Z': | ||||
| 				_options.scalemode = SCALE_ZOOM; | ||||
| 				_options.zoom = 1.0; | ||||
| @ -105,13 +96,6 @@ void parse_options(int argc, char **argv) { | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if (!_options.winw) { | ||||
| 		_options.winw = WIN_WIDTH; | ||||
| 		_options.winh = WIN_HEIGHT; | ||||
| 	} else if (!_options.winh) { | ||||
| 		_options.winh = _options.winw; | ||||
| 	} | ||||
| 
 | ||||
| 	_options.filenames = (const char**) argv + optind; | ||||
| 	_options.filecnt = argc - optind; | ||||
| } | ||||
|  | ||||
| @ -29,9 +29,8 @@ typedef struct options_s { | ||||
| 	float zoom; | ||||
| 	unsigned char aa; | ||||
| 
 | ||||
| 	int winw; | ||||
| 	int winh; | ||||
| 	unsigned char fullscreen; | ||||
| 	char *geometry; | ||||
| 
 | ||||
| 	unsigned char warn; | ||||
| } options_t; | ||||
|  | ||||
							
								
								
									
										20
									
								
								window.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								window.c
									
									
									
									
									
								
							| @ -35,6 +35,7 @@ void win_open(win_t *win) { | ||||
| 	win_env_t *e; | ||||
| 	XClassHint *classhint; | ||||
| 	XColor bgcol; | ||||
| 	int gmask; | ||||
| 
 | ||||
| 	if (!win) | ||||
| 		return; | ||||
| @ -58,9 +59,24 @@ void win_open(win_t *win) { | ||||
| 	win->pm = 0; | ||||
| 
 | ||||
| 	win->fullscreen = 0; | ||||
| 	win->w = MIN(options->winw, e->scrw); | ||||
| 	win->h = MIN(options->winh, e->scrh); | ||||
| 	 | ||||
| 	/* determine window offsets, width & height */ | ||||
| 	if (!options->geometry) | ||||
| 		gmask = 0; | ||||
| 	else | ||||
| 		gmask = XParseGeometry(options->geometry, &win->x, &win->y, | ||||
| 		                       &win->w, &win->h); | ||||
| 	if (!(gmask & WidthValue)) | ||||
| 		win->w = WIN_WIDTH; | ||||
| 	if (win->w > e->scrw) | ||||
| 		win->w = e->scrw; | ||||
| 	if (!(gmask & HeightValue)) | ||||
| 		win->h = WIN_HEIGHT; | ||||
| 	if (win->h > e->scrh) | ||||
| 		win->h = e->scrh; | ||||
| 	if (!(gmask & XValue)) | ||||
| 		win->x = (e->scrw - win->w) / 2; | ||||
| 	if (!(gmask & YValue)) | ||||
| 		win->y = (e->scrh - win->h) / 2; | ||||
| 
 | ||||
| 	win->xwin = XCreateWindow(e->dpy, RootWindow(e->dpy, e->scr), | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Bert
						Bert