diff options
| -rw-r--r-- | src/feh.h | 1 | ||||
| -rw-r--r-- | src/thumbnail.c | 13 | ||||
| -rw-r--r-- | src/winwidget.c | 11 | 
3 files changed, 22 insertions, 3 deletions
| @@ -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 012d516..c9cc24f 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 707b060..6f64844 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);  		} | 
