diff --git a/src/feh.h b/src/feh.h index b66f908caedc77695309cb5d2a68209a07408354..53d389439116a9972f598dbca901d46ec533d950 100644 --- a/src/feh.h +++ b/src/feh.h @@ -138,6 +138,7 @@ void show_mini_usage(void); void slideshow_change_image(winwidget winwid, int change, int render); void slideshow_pause_toggle(winwidget w); char *slideshow_create_name(feh_file * file, winwidget winwid); +char *thumbnail_create_name(feh_file * file, winwidget winwid); void init_keyevents(void); void init_buttonbindings(void); void feh_event_handle_keypress(XEvent * ev); diff --git a/src/thumbnail.c b/src/thumbnail.c index 012d5162d2d314f6c849a582df835da61073d7cd..c9cc24f8f097705b563de2da44257ee9e5c71694 100644 --- a/src/thumbnail.c +++ b/src/thumbnail.c @@ -876,3 +876,16 @@ int feh_thumbnail_setup_thumbnail_dir(void) return status; } + +char *thumbnail_create_name(feh_file * file, winwidget winwid) +{ + char *s = NULL; + + if (!opt.thumb_title) { + s = estrdup(file->filename); + } else { + s = estrdup(feh_printf(opt.thumb_title, file, winwid)); + } + + return(s); +} diff --git a/src/winwidget.c b/src/winwidget.c index 707b0602ab485d580a02e9c3957d966ca28ce10e..6f64844ed21088c90572ba70f8281173287adda2 100644 --- a/src/winwidget.c +++ b/src/winwidget.c @@ -634,9 +634,14 @@ void winwidget_render_image(winwidget winwid, int resize, int force_alias) feh_draw_info(winwid); if (winwid->errstr) feh_draw_errstr(winwid); - if (opt.title && (current_file != NULL)) { - /* title might contain e.g. the zoom specifier -> rewrite */ - char *s = slideshow_create_name(FEH_FILE(current_file->data), winwid); + if (opt.title && (winwid->type != WIN_TYPE_THUMBNAIL_VIEWER) && + (winwid->file != NULL)) { + char *s = slideshow_create_name(FEH_FILE(winwid->file->data), winwid); + winwidget_rename(winwid, s); + free(s); + } else if (opt.thumb_title && (winwid->type == WIN_TYPE_THUMBNAIL_VIEWER) && + (winwid->file != NULL)) { + char *s = thumbnail_create_name(FEH_FILE(winwid->file->data), winwid); winwidget_rename(winwid, s); free(s); }