summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/feh.h1
-rw-r--r--src/thumbnail.c13
-rw-r--r--src/winwidget.c11
3 files changed, 22 insertions, 3 deletions
diff --git a/src/feh.h b/src/feh.h
index b66f908..53d3894 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 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);
}