Loading ChangeLog +4 −0 Original line number Diff line number Diff line git HEAD * Patch to improve --scale-down behaviour when window size is changed Thu, 02 Feb 2012 21:04:06 +0100 Daniel Friesel <derf@finalrewind.org> * Release v2.3 Loading src/events.c +2 −0 Original line number Diff line number Diff line Loading @@ -235,6 +235,7 @@ static void feh_event_handle_ButtonPress(XEvent * ev) winwid->click_offset_x = ev->xbutton.x; winwid->click_offset_y = ev->xbutton.y; winwid->old_zoom = winwid->zoom; winwid->has_manual_zoom = 1; /* required to adjust the image position in zoom mode */ winwid->im_click_offset_x = (winwid->click_offset_x Loading Loading @@ -332,6 +333,7 @@ static void feh_event_handle_ButtonRelease(XEvent * ev) && (ev->xbutton.x == winwid->click_offset_x) && (ev->xbutton.y == winwid->click_offset_y)) { winwid->zoom = 1.0; winwid->has_manual_zoom = 0; winwidget_center_image(winwid); } else winwidget_sanitise_offsets(winwid); Loading src/keyevents.c +12 −6 Original line number Diff line number Diff line Loading @@ -573,6 +573,9 @@ void feh_event_handle_keypress(XEvent * ev) feh_event_invoke_action(winwid, 9); } else if (feh_is_kp(&keys.zoom_in, keysym, state)) { if (!winwid->has_manual_zoom) winwid->has_manual_zoom = 1; winwid->old_zoom = winwid->zoom; winwid->zoom = winwid->zoom * 1.25; Loading @@ -587,6 +590,9 @@ void feh_event_handle_keypress(XEvent * ev) winwidget_render_image(winwid, 0, 0); } else if (feh_is_kp(&keys.zoom_out, keysym, state)) { if (!winwid->has_manual_zoom) winwid->has_manual_zoom = 1; winwid->old_zoom = winwid->zoom; winwid->zoom = winwid->zoom * 0.80; Loading @@ -601,17 +607,17 @@ void feh_event_handle_keypress(XEvent * ev) winwidget_render_image(winwid, 0, 0); } else if (feh_is_kp(&keys.zoom_default, keysym, state)) { if (!winwid->has_manual_zoom) winwid->has_manual_zoom = 1; winwid->zoom = 1.0; /* --scale-down will revert our operation if old_zoom == 1.0 */ if (opt.scale_down) winwid->old_zoom = 1.001; winwidget_center_image(winwid); winwidget_render_image(winwid, 0, 0); /* --scale-down will also do weird stuff if zoom is 1.0 */ if (opt.scale_down) winwid->zoom = 1.001; } else if (feh_is_kp(&keys.zoom_fit, keysym, state)) { if (!winwid->has_manual_zoom) winwid->has_manual_zoom = 1; feh_calc_needed_zoom(&winwid->zoom, winwid->im_w, winwid->im_h, winwid->w, winwid->h); winwidget_center_image(winwid); winwidget_render_image(winwid, 0, 0); Loading src/winwidget.c +6 −1 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ static winwidget winwidget_allocate(void) ret->im_y = 0; ret->zoom = 1.0; ret->old_zoom = 1.0; ret->has_manual_zoom = 0; ret->click_offset_x = 0; ret->click_offset_y = 0; Loading Loading @@ -394,6 +395,9 @@ void winwidget_render_image(winwidget winwid, int resize, int force_alias) if (winwid->im_y > winwid->h) winwid->im_y = winwid->h; if (!winwid->has_manual_zoom && winwid->zoom < 1.0) winwid->zoom = 1.0; D(("winwidget_render_image resize %d force_alias %d im %dx%d\n", resize, force_alias, winwid->im_w, winwid->im_h)); Loading @@ -401,7 +405,7 @@ void winwidget_render_image(winwidget winwid, int resize, int force_alias) if (!winwid->full_screen && opt.scale_down && ((winwid->w < winwid->im_w) || (winwid->h < winwid->im_h)) && (winwid->old_zoom == 1.0)) { (!winwid->has_manual_zoom)) { D(("scaling down image %dx%d\n", winwid->w, winwid->h)); feh_calc_needed_zoom(&(winwid->zoom), winwid->im_w, winwid->im_h, winwid->w, winwid->h); Loading Loading @@ -950,6 +954,7 @@ void feh_debug_print_winwid(winwidget w) void winwidget_reset_image(winwidget winwid) { winwid->has_manual_zoom = 0; winwid->zoom = 1.0; winwid->old_zoom = 1.0; winwid->im_x = 0; Loading src/winwidget.h +1 −0 Original line number Diff line number Diff line Loading @@ -108,6 +108,7 @@ struct __winwidget { */ double zoom; double old_zoom; unsigned char has_manual_zoom; int click_offset_x; int click_offset_y; Loading Loading
ChangeLog +4 −0 Original line number Diff line number Diff line git HEAD * Patch to improve --scale-down behaviour when window size is changed Thu, 02 Feb 2012 21:04:06 +0100 Daniel Friesel <derf@finalrewind.org> * Release v2.3 Loading
src/events.c +2 −0 Original line number Diff line number Diff line Loading @@ -235,6 +235,7 @@ static void feh_event_handle_ButtonPress(XEvent * ev) winwid->click_offset_x = ev->xbutton.x; winwid->click_offset_y = ev->xbutton.y; winwid->old_zoom = winwid->zoom; winwid->has_manual_zoom = 1; /* required to adjust the image position in zoom mode */ winwid->im_click_offset_x = (winwid->click_offset_x Loading Loading @@ -332,6 +333,7 @@ static void feh_event_handle_ButtonRelease(XEvent * ev) && (ev->xbutton.x == winwid->click_offset_x) && (ev->xbutton.y == winwid->click_offset_y)) { winwid->zoom = 1.0; winwid->has_manual_zoom = 0; winwidget_center_image(winwid); } else winwidget_sanitise_offsets(winwid); Loading
src/keyevents.c +12 −6 Original line number Diff line number Diff line Loading @@ -573,6 +573,9 @@ void feh_event_handle_keypress(XEvent * ev) feh_event_invoke_action(winwid, 9); } else if (feh_is_kp(&keys.zoom_in, keysym, state)) { if (!winwid->has_manual_zoom) winwid->has_manual_zoom = 1; winwid->old_zoom = winwid->zoom; winwid->zoom = winwid->zoom * 1.25; Loading @@ -587,6 +590,9 @@ void feh_event_handle_keypress(XEvent * ev) winwidget_render_image(winwid, 0, 0); } else if (feh_is_kp(&keys.zoom_out, keysym, state)) { if (!winwid->has_manual_zoom) winwid->has_manual_zoom = 1; winwid->old_zoom = winwid->zoom; winwid->zoom = winwid->zoom * 0.80; Loading @@ -601,17 +607,17 @@ void feh_event_handle_keypress(XEvent * ev) winwidget_render_image(winwid, 0, 0); } else if (feh_is_kp(&keys.zoom_default, keysym, state)) { if (!winwid->has_manual_zoom) winwid->has_manual_zoom = 1; winwid->zoom = 1.0; /* --scale-down will revert our operation if old_zoom == 1.0 */ if (opt.scale_down) winwid->old_zoom = 1.001; winwidget_center_image(winwid); winwidget_render_image(winwid, 0, 0); /* --scale-down will also do weird stuff if zoom is 1.0 */ if (opt.scale_down) winwid->zoom = 1.001; } else if (feh_is_kp(&keys.zoom_fit, keysym, state)) { if (!winwid->has_manual_zoom) winwid->has_manual_zoom = 1; feh_calc_needed_zoom(&winwid->zoom, winwid->im_w, winwid->im_h, winwid->w, winwid->h); winwidget_center_image(winwid); winwidget_render_image(winwid, 0, 0); Loading
src/winwidget.c +6 −1 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ static winwidget winwidget_allocate(void) ret->im_y = 0; ret->zoom = 1.0; ret->old_zoom = 1.0; ret->has_manual_zoom = 0; ret->click_offset_x = 0; ret->click_offset_y = 0; Loading Loading @@ -394,6 +395,9 @@ void winwidget_render_image(winwidget winwid, int resize, int force_alias) if (winwid->im_y > winwid->h) winwid->im_y = winwid->h; if (!winwid->has_manual_zoom && winwid->zoom < 1.0) winwid->zoom = 1.0; D(("winwidget_render_image resize %d force_alias %d im %dx%d\n", resize, force_alias, winwid->im_w, winwid->im_h)); Loading @@ -401,7 +405,7 @@ void winwidget_render_image(winwidget winwid, int resize, int force_alias) if (!winwid->full_screen && opt.scale_down && ((winwid->w < winwid->im_w) || (winwid->h < winwid->im_h)) && (winwid->old_zoom == 1.0)) { (!winwid->has_manual_zoom)) { D(("scaling down image %dx%d\n", winwid->w, winwid->h)); feh_calc_needed_zoom(&(winwid->zoom), winwid->im_w, winwid->im_h, winwid->w, winwid->h); Loading Loading @@ -950,6 +954,7 @@ void feh_debug_print_winwid(winwidget w) void winwidget_reset_image(winwidget winwid) { winwid->has_manual_zoom = 0; winwid->zoom = 1.0; winwid->old_zoom = 1.0; winwid->im_x = 0; Loading
src/winwidget.h +1 −0 Original line number Diff line number Diff line Loading @@ -108,6 +108,7 @@ struct __winwidget { */ double zoom; double old_zoom; unsigned char has_manual_zoom; int click_offset_x; int click_offset_y; Loading