Commit 894da596 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

fix image resize for w key and menu option (#229)

parent 01e9116b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -638,7 +638,7 @@ static void feh_event_handle_MotionNotify(XEvent * ev)
				winwid->im_h = gib_imlib_image_get_height(temp);
				gib_imlib_free_image_and_decache(temp);
				if (!winwid->full_screen && !opt.geom_flags)
					winwidget_resize(winwid, winwid->im_w, winwid->im_h);
					winwidget_resize(winwid, winwid->im_w, winwid->im_h, 0);
				winwid->has_rotated = 1;
			}
			winwid->im_angle = (ev->xmotion.x - winwid->w / 2) / ((double) winwid->w / 2) * 3.1415926535;
+1 −1
Original line number Diff line number Diff line
@@ -1218,7 +1218,7 @@ void feh_menu_cb(feh_menu * m, feh_menu_item * i, int action, unsigned short dat
			if (m->fehwin->has_rotated) {
				m->fehwin->im_w = gib_imlib_image_get_width(m->fehwin->im);
				m->fehwin->im_h = gib_imlib_image_get_height(m->fehwin->im);
				winwidget_resize(m->fehwin, m->fehwin->im_w, m->fehwin->im_h);
				winwidget_resize(m->fehwin, m->fehwin->im_w, m->fehwin->im_h, 0);
			}
			winwidget_reset_image(m->fehwin);
			winwidget_render_image(m->fehwin, 1, 0);
+9 −4
Original line number Diff line number Diff line
@@ -401,7 +401,7 @@ void winwidget_render_image(winwidget winwid, int resize, int force_alias)
	int need_center = winwid->had_resize;

	if (!winwid->full_screen && resize) {
		winwidget_resize(winwid, winwid->im_w, winwid->im_h);
		winwidget_resize(winwid, winwid->im_w, winwid->im_h, 0);
		winwidget_reset_image(winwid);
	}

@@ -792,7 +792,7 @@ void winwidget_move(winwidget winwid, int x, int y)
	return;
}

void winwidget_resize(winwidget winwid, int w, int h)
void winwidget_resize(winwidget winwid, int w, int h, int force_resize)
{
	XWindowAttributes attributes;
	int tc_x, tc_y, px, py;
@@ -833,7 +833,7 @@ void winwidget_resize(winwidget winwid, int w, int h)
	D(("   x %d y %d w %d h %d\n", attributes.x, attributes.y, winwid->w,
		winwid->h));

    if (opt.geom_flags & (WidthValue | HeightValue)) {
    if ((opt.geom_flags & (WidthValue | HeightValue)) && !force_resize) {
        winwid->had_resize = 1;
        return;
    }
@@ -857,6 +857,11 @@ void winwidget_resize(winwidget winwid, int w, int h)
		winwid->had_resize = 1;
		XFlush(disp);

		if (force_resize && opt.scale_down && (winwid->type != WIN_TYPE_THUMBNAIL)) {
			opt.geom_w = winwid->w;
			opt.geom_h = winwid->h;
		}

		D(("-> x %d y %d w %d h %d\n", winwid->x, winwid->y, winwid->w,
			winwid->h));

@@ -1046,7 +1051,7 @@ void winwidget_sanitise_offsets(winwidget winwid)

void winwidget_size_to_image(winwidget winwid)
{
	winwidget_resize(winwid, winwid->im_w * winwid->zoom, winwid->im_h * winwid->zoom);
	winwidget_resize(winwid, winwid->im_w * winwid->zoom, winwid->im_h * winwid->zoom, 1);
	winwid->im_x = winwid->im_y = 0;
	winwidget_render_image(winwid, 0, 0);
	return;
+1 −1
Original line number Diff line number Diff line
@@ -128,7 +128,7 @@ void winwidget_center_image(winwidget w);
void winwidget_render_image(winwidget winwid, int resize, int force_alias);
void winwidget_rotate_image(winwidget winid, double angle);
void winwidget_move(winwidget winwid, int x, int y);
void winwidget_resize(winwidget winwid, int w, int h);
void winwidget_resize(winwidget winwid, int w, int h, int force_resize);
void winwidget_setup_pixmaps(winwidget winwid);
void winwidget_update_title(winwidget ret);
void winwidget_update_caption(winwidget winwid);