Commit da92889e authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

Add --zoom fill as equivalent to --auto-zoom

parent 92123b14
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1436,7 +1436,10 @@ void feh_menu_cb(feh_menu * m, feh_menu_item * i, int action, void *data)
			break;
		case CB_OPT_AUTO_ZOOM:
			MENU_ITEM_TOGGLE(i);
			opt.auto_zoom = MENU_ITEM_IS_ON(i) ? 1 : 0;
			if (MENU_ITEM_IS_ON(i))
				opt.zoom_mode = ZOOM_MODE_FILL;
			else
				opt.zoom_mode = 0;
			winwidget_rerender_all(1, 1);
			break;
	}
@@ -1488,7 +1491,7 @@ static feh_menu *feh_menu_func_gen_options(feh_menu * m)
	mm = feh_menu_new();
	mm->name = estrdup("OPTIONS");
	mm->fehwin = m->fehwin;
	feh_menu_add_toggle_entry(mm, "Auto-Zoom", NULL, NULL, CB_OPT_AUTO_ZOOM, NULL, NULL, opt.auto_zoom);
	feh_menu_add_toggle_entry(mm, "Auto-Zoom", NULL, NULL, CB_OPT_AUTO_ZOOM, NULL, NULL, (opt.zoom_mode == ZOOM_MODE_FILL));
	feh_menu_add_toggle_entry(mm, "Freeze Window Size", NULL, NULL,
				CB_OPT_FREEZE_WINDOW, NULL, NULL, opt.geom_flags);
	feh_menu_add_toggle_entry(mm, "Fullscreen", NULL, NULL,
+7 −2
Original line number Diff line number Diff line
@@ -523,7 +523,7 @@ static void feh_parse_option_array(int argc, char **argv)
			opt.full_screen = 1;
			break;
		case 'Z':
			opt.auto_zoom = 1;
			opt.zoom_mode = ZOOM_MODE_FILL;
			break;
		case 'U':
			opt.loadables = 1;
@@ -693,6 +693,11 @@ static void feh_parse_option_array(int argc, char **argv)
			opt.menu_style = estrdup(optarg);
			break;
		case 205:
			if (!strcmp("fill", optarg))
				opt.zoom_mode = ZOOM_MODE_FILL;
			else if (!strcmp("max", optarg))
				opt.zoom_mode = ZOOM_MODE_MAX;
			else
				opt.default_zoom = atoi(optarg);
			break;
		case 206:
+4 −1
Original line number Diff line number Diff line
@@ -27,6 +27,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifndef OPTIONS_H
#define OPTIONS_H

#define ZOOM_MODE_FILL 1
#define ZOOM_MODE_MAX  2

struct __fehoptions {
	unsigned char multiwindow;
	unsigned char montage;
@@ -51,7 +54,6 @@ struct __fehoptions {
	unsigned char randomize;
	unsigned char jump_on_resort;
	unsigned char full_screen;
	unsigned char auto_zoom;
	unsigned char draw_filename;
	unsigned char list;
	unsigned char quiet;
@@ -120,6 +122,7 @@ struct __fehoptions {
	unsigned int geom_w;
	unsigned int geom_h;
	int default_zoom;
	int zoom_mode;
	unsigned char adjust_reload;

	unsigned char mode;
+1 −1
Original line number Diff line number Diff line
@@ -426,7 +426,7 @@ void winwidget_render_image(winwidget winwid, int resize, int alias)
		smaller = ((winwid->im_w < max_w)
			   && (winwid->im_h < max_h));

		if (!smaller || opt.auto_zoom) {
		if (!smaller || (opt.zoom_mode == ZOOM_MODE_FILL)) {
			double ratio = 0.0;

			/* Image is larger than the screen (so wants shrinking), or it's