diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | src/menu.c | 12 | ||||
-rw-r--r-- | src/wallpaper.c | 6 |
3 files changed, 10 insertions, 9 deletions
@@ -11,6 +11,7 @@ git HEAD * feh.desktop: Use feh %F since we support multiple files * Fix --borderless not working on some 64bit systems (Patch by Brian Mattern) + * Always use absolute paths in .fehbg Tue, 11 Jun 2013 08:27:24 +0200 Daniel Friesel <derf+feh@finalrewind.org> @@ -1183,24 +1183,20 @@ void feh_menu_cb(feh_menu * m, feh_menu_item * i, int action, unsigned short dat switch (action) { case CB_BG_TILED: - path = feh_absolute_path(FEH_FILE(m->fehwin->file->data)->filename); + path = FEH_FILE(m->fehwin->file->data)->filename; feh_wm_set_bg(path, m->fehwin->im, 0, 0, 0, data, 0); - free(path); break; case CB_BG_SCALED: - path = feh_absolute_path(FEH_FILE(m->fehwin->file->data)->filename); + path = FEH_FILE(m->fehwin->file->data)->filename; feh_wm_set_bg(path, m->fehwin->im, 0, 1, 0, data, 0); - free(path); break; case CB_BG_CENTERED: - path = feh_absolute_path(FEH_FILE(m->fehwin->file->data)->filename); + path = FEH_FILE(m->fehwin->file->data)->filename; feh_wm_set_bg(path, m->fehwin->im, 1, 0, 0, data, 0); - free(path); break; case CB_BG_FILLED: - path = feh_absolute_path(FEH_FILE(m->fehwin->file->data)->filename); + path = FEH_FILE(m->fehwin->file->data)->filename; feh_wm_set_bg(path, m->fehwin->im, 0, 0, 1, data, 0); - free(path); break; case CB_BG_TILED_NOFILE: feh_wm_set_bg(NULL, m->fehwin->im, 0, 0, 0, data, 0); diff --git a/src/wallpaper.c b/src/wallpaper.c index 886beb6..b5945f0 100644 --- a/src/wallpaper.c +++ b/src/wallpaper.c @@ -310,6 +310,8 @@ void feh_wm_set_bg(char *fil, Imlib_Image im, int centered, int scaled, if (fil && !use_filelist) { filbuf[out++] = '\''; + fil = feh_absolute_path(fil); + for (in = 0; fil[in] && out < 4092; in++) { if (fil[in] == '\'') @@ -317,12 +319,13 @@ void feh_wm_set_bg(char *fil, Imlib_Image im, int centered, int scaled, filbuf[out++] = fil[in]; } filbuf[out++] = '\''; + free(fil); } else { for (l = filelist; l && out < 4092; l = l->next) { filbuf[out++] = '\''; - fil = FEH_FILE(l->data)->filename; + fil = feh_absolute_path(FEH_FILE(l->data)->filename); for (in = 0; fil[in] && out < 4092; in++) { @@ -332,6 +335,7 @@ void feh_wm_set_bg(char *fil, Imlib_Image im, int centered, int scaled, } filbuf[out++] = '\''; filbuf[out++] = ' '; + free(fil); } } |