Loading src/events.c +1 −8 Original line number Diff line number Diff line Loading @@ -492,20 +492,13 @@ static void feh_event_handle_MotionNotify(XEvent * ev) while (XCheckTypedWindowEvent(disp, ev->xmotion.window, MotionNotify, ev)); winwid = winwidget_get_from_window(ev->xmotion.window); if ((winwid != NULL) && (winwid->type == WIN_TYPE_THUMBNAIL)) { static feh_thumbnail *last_thumb = NULL; feh_thumbnail *thumbnail; int x, y; x = (ev->xbutton.x - winwid->im_x) / winwid->zoom; y = (ev->xbutton.y - winwid->im_y) / winwid->zoom; thumbnail = feh_thumbnail_get_thumbnail_from_coords(x, y); if (thumbnail != last_thumb) { if (thumbnail) feh_thumbnail_mark_selected(winwid, thumbnail); else winwidget_render_image(winwid, 0, 0); } last_thumb = thumbnail; } } return; Loading src/thumbnail.c +28 −19 Original line number Diff line number Diff line Loading @@ -929,6 +929,11 @@ void feh_thumbnail_show_fullsize(feh_file *thumbfile) void feh_thumbnail_mark_selected(winwidget winwid, feh_thumbnail *thumbnail) { Imlib_Image origwin; if (thumbnail == td.selected) return; if (thumbnail) { origwin = winwid->im; winwid->im = gib_imlib_clone_image(origwin); gib_imlib_image_fill_rectangle(winwid->im, Loading @@ -948,6 +953,10 @@ void feh_thumbnail_mark_selected(winwidget winwid, feh_thumbnail *thumbnail) winwidget_render_image(winwid, 0, 0); gib_imlib_free_image_and_decache(winwid->im); winwid->im = origwin; } else winwidget_render_image(winwid, 0, 0); td.selected = thumbnail; } Loading src/thumbnail.h +1 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ typedef struct thumbmode_data { int cache_thumbnails; /* use cached thumbnails from ~/.thumbnails */ int cache_dim; /* 128 = 128x128 ("normal"), 256 = 256x256 ("large") */ char *cache_dir; /* "normal"/"large" (.thumbnails/...) */ feh_thumbnail *selected; /* currently selected thumbnail */ } thumbmode_data; Loading Loading
src/events.c +1 −8 Original line number Diff line number Diff line Loading @@ -492,20 +492,13 @@ static void feh_event_handle_MotionNotify(XEvent * ev) while (XCheckTypedWindowEvent(disp, ev->xmotion.window, MotionNotify, ev)); winwid = winwidget_get_from_window(ev->xmotion.window); if ((winwid != NULL) && (winwid->type == WIN_TYPE_THUMBNAIL)) { static feh_thumbnail *last_thumb = NULL; feh_thumbnail *thumbnail; int x, y; x = (ev->xbutton.x - winwid->im_x) / winwid->zoom; y = (ev->xbutton.y - winwid->im_y) / winwid->zoom; thumbnail = feh_thumbnail_get_thumbnail_from_coords(x, y); if (thumbnail != last_thumb) { if (thumbnail) feh_thumbnail_mark_selected(winwid, thumbnail); else winwidget_render_image(winwid, 0, 0); } last_thumb = thumbnail; } } return; Loading
src/thumbnail.c +28 −19 Original line number Diff line number Diff line Loading @@ -929,6 +929,11 @@ void feh_thumbnail_show_fullsize(feh_file *thumbfile) void feh_thumbnail_mark_selected(winwidget winwid, feh_thumbnail *thumbnail) { Imlib_Image origwin; if (thumbnail == td.selected) return; if (thumbnail) { origwin = winwid->im; winwid->im = gib_imlib_clone_image(origwin); gib_imlib_image_fill_rectangle(winwid->im, Loading @@ -948,6 +953,10 @@ void feh_thumbnail_mark_selected(winwidget winwid, feh_thumbnail *thumbnail) winwidget_render_image(winwid, 0, 0); gib_imlib_free_image_and_decache(winwid->im); winwid->im = origwin; } else winwidget_render_image(winwid, 0, 0); td.selected = thumbnail; } Loading
src/thumbnail.h +1 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ typedef struct thumbmode_data { int cache_thumbnails; /* use cached thumbnails from ~/.thumbnails */ int cache_dim; /* 128 = 128x128 ("normal"), 256 = 256x256 ("large") */ char *cache_dir; /* "normal"/"large" (.thumbnails/...) */ feh_thumbnail *selected; /* currently selected thumbnail */ } thumbmode_data; Loading