diff -Naur feh-3.7.2.orig/src/keyevents.c feh-3.7.2/src/keyevents.c --- feh-3.7.2.orig/src/keyevents.c 2021-09-25 03:23:31.000000000 -0400 +++ feh-3.7.2/src/keyevents.c 2021-10-15 23:11:48.612500359 -0400 @@ -713,9 +713,6 @@ /* We need to re-render the image to update the info string immediately. */ winwidget_render_image(winwid, 0, 0); } - else if (feh_is_kp(EVENT_save_image, state, keysym, button)) { - slideshow_save_image(winwid); - } else if (feh_is_kp(EVENT_save_filelist, state, keysym, button)) { if ((winwid->type == WIN_TYPE_THUMBNAIL) || (winwid->type == WIN_TYPE_THUMBNAIL_VIEWER)) diff -Naur feh-3.7.2.orig/src/menu.c feh-3.7.2/src/menu.c --- feh-3.7.2.orig/src/menu.c 2021-09-25 03:23:31.000000000 -0400 +++ feh-3.7.2/src/menu.c 2021-06-08 16:59:58.000000000 -0400 @@ -43,47 +43,16 @@ static feh_menu *feh_menu_func_gen_info(feh_menu * m); static void feh_menu_func_free_info(feh_menu * m); -static void feh_menu_func_free_options(feh_menu * m); -static feh_menu *feh_menu_func_gen_options(feh_menu * m); void feh_menu_cb(feh_menu * m, feh_menu_item * i, int action, unsigned short data); void feh_menu_cb_opt_fullscreen(feh_menu * m, feh_menu_item * i); enum { CB_CLOSE = 1, CB_EXIT, + CB_GIMP_SWITCH, + CB_SWITCH, CB_RELOAD, - CB_REMOVE, - CB_DELETE, - CB_RESET, - CB_REMOVE_THUMB, - CB_DELETE_THUMB, - CB_BG_TILED, - CB_BG_SCALED, - CB_BG_CENTERED, - CB_BG_FILLED, - CB_BG_TILED_NOFILE, - CB_BG_SCALED_NOFILE, - CB_BG_CENTERED_NOFILE, - CB_BG_FILLED_NOFILE, - CB_SORT_FILENAME, - CB_SORT_IMAGENAME, - CB_SORT_DIRNAME, - CB_SORT_MTIME, - CB_SORT_FILESIZE, - CB_SORT_RANDOMIZE, - CB_SAVE_IMAGE, - CB_SAVE_FILELIST, - CB_FIT, - CB_OPT_DRAW_FILENAME, - CB_OPT_DRAW_ACTIONS, - CB_OPT_KEEP_HTTP, - CB_OPT_FREEZE_WINDOW, - CB_OPT_FULLSCREEN, - CB_EDIT_ROTATE, - CB_EDIT_MIRROR, - CB_EDIT_FLIP, - CB_OPT_AUTO_ZOOM, - CB_OPT_KEEP_ZOOM_VP + CB_DELETE }; feh_menu *feh_menu_new(void) @@ -903,34 +872,20 @@ feh_menu_add_entry(menu_main, "File", "FILE", 0, 0, NULL); if (opt.slideshow || opt.multiwindow) { - feh_menu_add_entry(menu_main, "Sort List", "SORT", 0, 0, NULL); mi = feh_menu_add_entry(menu_main, "Image Info", "INFO", 0, 0, NULL); mi->func_gen_sub = feh_menu_func_gen_info; feh_menu_add_entry(menu_main, NULL, NULL, 0, 0, NULL); } - mi = feh_menu_add_entry(menu_main, "Options", "OPTIONS", 0, 0, NULL); - mi->func_gen_sub = feh_menu_func_gen_options; if (opt.multiwindow) feh_menu_add_entry(menu_main, "Close", NULL, CB_CLOSE, 0, NULL); + feh_menu_add_entry(menu_main, "Switch to GIMP", NULL, CB_GIMP_SWITCH, 0, NULL); feh_menu_add_entry(menu_main, "Exit", NULL, CB_EXIT, 0, NULL); m = feh_menu_new(); m->name = estrdup("FILE"); - feh_menu_add_entry(m, "Reset", NULL, CB_RESET, 0, NULL); - feh_menu_add_entry(m, "Resize Window", NULL, CB_FIT, 0, NULL); feh_menu_add_entry(m, "Reload", NULL, CB_RELOAD, 0, NULL); - feh_menu_add_entry(m, "Save Image", NULL, CB_SAVE_IMAGE, 0, NULL); - feh_menu_add_entry(m, "Save List", NULL, CB_SAVE_FILELIST, 0, NULL); - if (opt.edit) { - feh_menu_add_entry(m, "Edit in Place", "EDIT", 0, 0, NULL); - } - else { - feh_menu_add_entry(m, "Change View", "EDIT", 0, 0, NULL); - } - feh_menu_add_entry(m, "Background", "BACKGROUND", 0, 0, NULL); feh_menu_add_entry(m, NULL, NULL, 0, 0, NULL); - feh_menu_add_entry(m, "Hide", NULL, CB_REMOVE, 0, NULL); feh_menu_add_entry(m, "Delete", "CONFIRM", 0, 0, NULL); return; @@ -950,110 +905,14 @@ opt.menu_font); } - m = feh_menu_new(); - m->name = estrdup("SORT"); - feh_menu_add_entry(m, "By File Name", NULL, CB_SORT_FILENAME, 0, NULL); - feh_menu_add_entry(m, "By Image Name", NULL, CB_SORT_IMAGENAME, 0, NULL); - feh_menu_add_entry(m, "By Directory Name", NULL, CB_SORT_DIRNAME, 0, NULL); - feh_menu_add_entry(m, "By Modification Date", NULL, CB_SORT_MTIME, 0, NULL); - if (opt.preload || (opt.sort > SORT_MTIME)) - feh_menu_add_entry(m, "By File Size", NULL, CB_SORT_FILESIZE, 0, NULL); - feh_menu_add_entry(m, "Randomize", NULL, CB_SORT_RANDOMIZE, 0, NULL); m = feh_menu_new(); m->name = estrdup("CONFIRM"); feh_menu_add_entry(m, "Confirm", NULL, CB_DELETE, 0, NULL); - m = feh_menu_new(); - m->name = estrdup("EDIT"); - feh_menu_add_entry(m, "Rotate 90 CW", NULL, CB_EDIT_ROTATE, 1, NULL); - feh_menu_add_entry(m, "Rotate 180", NULL, CB_EDIT_ROTATE, 2, NULL); - feh_menu_add_entry(m, "Rotate 90 CCW", NULL, CB_EDIT_ROTATE, 3, NULL); - feh_menu_add_entry(m, "Mirror", NULL, CB_EDIT_MIRROR, 0, NULL); - feh_menu_add_entry(m, "Flip", NULL, CB_EDIT_FLIP, 0, NULL); - - menu_bg = feh_menu_new(); - menu_bg->name = estrdup("BACKGROUND"); - - num_desks = feh_wm_get_num_desks(); - if (num_desks > 1) { - feh_menu_add_entry(menu_bg, "Set Tiled", "TILED", 0, 0, NULL); - feh_menu_add_entry(menu_bg, "Set Scaled", "SCALED", 0, 0, NULL); - feh_menu_add_entry(menu_bg, "Set Centered", "CENTERED", 0, 0, NULL); - feh_menu_add_entry(menu_bg, "Set Filled", "FILLED", 0, 0, NULL); - - m = feh_menu_new(); - m->name = estrdup("TILED"); - for (i = 0; i < num_desks; i++) { - snprintf(buf, sizeof(buf), "Desktop %d", i + 1); - if (opt.slideshow || opt.multiwindow) - feh_menu_add_entry(m, buf, NULL, CB_BG_TILED, - i, NULL); - else - feh_menu_add_entry(m, buf, NULL, CB_BG_TILED_NOFILE, - i, NULL); - } - - m = feh_menu_new(); - m->name = estrdup("SCALED"); - for (i = 0; i < num_desks; i++) { - snprintf(buf, sizeof(buf), "Desktop %d", i + 1); - - if (opt.slideshow || opt.multiwindow) - feh_menu_add_entry(m, buf, NULL, CB_BG_SCALED, - i, NULL); - else - feh_menu_add_entry(m, buf, NULL, CB_BG_SCALED_NOFILE, - i, NULL); - } - m = feh_menu_new(); - m->name = estrdup("CENTERED"); - for (i = 0; i < num_desks; i++) { - snprintf(buf, sizeof(buf), "Desktop %d", i + 1); - if (opt.slideshow || opt.multiwindow) - feh_menu_add_entry(m, buf, NULL, - CB_BG_CENTERED, i, NULL); - else - feh_menu_add_entry(m, buf, NULL, - CB_BG_CENTERED_NOFILE, i, NULL); - } - - m = feh_menu_new(); - m->name = estrdup("FILLED"); - for (i = 0; i < num_desks; i++) { - snprintf(buf, sizeof(buf), "Desktop %d", i + 1); - if (opt.slideshow || opt.multiwindow) - feh_menu_add_entry(m, buf, NULL, - CB_BG_FILLED, - i, NULL); - else - feh_menu_add_entry(m, buf, NULL, - CB_BG_FILLED_NOFILE, - i, NULL); - } - } else { - if (opt.slideshow || opt.multiwindow) { - feh_menu_add_entry(menu_bg, "Set Tiled", - NULL, CB_BG_TILED, 0, NULL); - feh_menu_add_entry(menu_bg, "Set Scaled", - NULL, CB_BG_SCALED, 0, NULL); - feh_menu_add_entry(menu_bg, "Set Centered", - NULL, CB_BG_CENTERED, 0, NULL); - feh_menu_add_entry(menu_bg, "Set Filled", - NULL, CB_BG_FILLED, 0, NULL); - } else { - feh_menu_add_entry(menu_bg, "Set Tiled", - NULL, CB_BG_TILED_NOFILE, 0, NULL); - feh_menu_add_entry(menu_bg, "Set Scaled", - NULL, CB_BG_SCALED_NOFILE, 0, NULL); - feh_menu_add_entry(menu_bg, "Set Centered", - NULL, CB_BG_CENTERED_NOFILE, 0, NULL); - feh_menu_add_entry(menu_bg, "Set Filled", - NULL, CB_BG_FILLED_NOFILE, 0, NULL); - } - } + common_menus = 1; return; @@ -1073,25 +932,17 @@ feh_menu_add_entry(menu_single_win, "File", "SINGLEWIN_FILE", 0, 0, NULL); m = feh_menu_new(); m->name = estrdup("SINGLEWIN_FILE"); - feh_menu_add_entry(m, "Reset", NULL, CB_RESET, 0, NULL); - feh_menu_add_entry(m, "Resize Window", NULL, CB_FIT, 0, NULL); feh_menu_add_entry(m, "Reload", NULL, CB_RELOAD, 0, NULL); - feh_menu_add_entry(m, "Save Image", NULL, CB_SAVE_IMAGE, 0, NULL); - feh_menu_add_entry(m, "Save List", NULL, CB_SAVE_FILELIST, 0, NULL); - feh_menu_add_entry(m, "Edit in Place", "EDIT", 0, 0, NULL); - feh_menu_add_entry(m, "Background", "BACKGROUND", 0, 0, NULL); if (opt.multiwindow || opt.slideshow) { feh_menu_add_entry(m, NULL, NULL, 0, 0, NULL); - feh_menu_add_entry(m, "Hide", NULL, CB_REMOVE, 0, NULL); feh_menu_add_entry(m, "Delete", "CONFIRM", 0, 0, NULL); } mi = feh_menu_add_entry(menu_single_win, "Image Info", "INFO", 0, 0, NULL); mi->func_gen_sub = feh_menu_func_gen_info; feh_menu_add_entry(menu_single_win, NULL, NULL, 0, 0, NULL); - mi = feh_menu_add_entry(menu_single_win, "Options", "OPTIONS", 0, 0, NULL); - mi->func_gen_sub = feh_menu_func_gen_options; feh_menu_add_entry(menu_single_win, "Close", NULL, CB_CLOSE, 0, NULL); + feh_menu_add_entry(menu_main, "Switch to GIMP", NULL, CB_GIMP_SWITCH, 0, NULL); feh_menu_add_entry(menu_single_win, "Exit", NULL, CB_EXIT, 0, NULL); return; @@ -1111,15 +962,9 @@ feh_menu_add_entry(menu_thumbnail_win, "File", "THUMBWIN_FILE", 0, 0, NULL); m = feh_menu_new(); m->name = estrdup("THUMBWIN_FILE"); - feh_menu_add_entry(m, "Reset", NULL, CB_RESET, 0, NULL); - feh_menu_add_entry(m, "Resize Window", NULL, CB_FIT, 0, NULL); - feh_menu_add_entry(m, "Save Image", NULL, CB_SAVE_IMAGE, 0, NULL); - feh_menu_add_entry(m, "Save List", NULL, CB_SAVE_FILELIST, 0, NULL); - feh_menu_add_entry(m, "Background", "BACKGROUND", 0, 0, NULL); feh_menu_add_entry(menu_thumbnail_win, NULL, NULL, 0, 0, NULL); - mi = feh_menu_add_entry(menu_thumbnail_win, "Options", "OPTIONS", 0, 0, NULL); - mi->func_gen_sub = feh_menu_func_gen_options; feh_menu_add_entry(menu_thumbnail_win, "Close", NULL, CB_CLOSE, 0, NULL); + feh_menu_add_entry(menu_main, "Switch to GIMP", NULL, CB_GIMP_SWITCH, 0, NULL); feh_menu_add_entry(menu_thumbnail_win, "Exit", NULL, CB_EXIT, 0, NULL); return; } @@ -1139,28 +984,16 @@ 0, 0, NULL); m = feh_menu_new(); m->name = estrdup("THUMBVIEW_FILE"); - feh_menu_add_entry(m, "Reset", NULL, CB_RESET, 0, NULL); - feh_menu_add_entry(m, "Resize Window", NULL, CB_FIT, 0, NULL); feh_menu_add_entry(m, "Reload", NULL, CB_RELOAD, 0, NULL); - feh_menu_add_entry(m, "Save Image", NULL, CB_SAVE_IMAGE, 0, NULL); - feh_menu_add_entry(m, "Save List", NULL, CB_SAVE_FILELIST, 0, NULL); - feh_menu_add_entry(m, "Edit in Place", "EDIT", 0, 0, NULL); - feh_menu_add_entry(m, "Background", "BACKGROUND", 0, 0, NULL); feh_menu_add_entry(m, NULL, NULL, 0, 0, NULL); - feh_menu_add_entry(m, "Hide", NULL, CB_REMOVE_THUMB, 0, NULL); feh_menu_add_entry(m, "Delete", "THUMBVIEW_CONFIRM", 0, 0, NULL); mi = feh_menu_add_entry(menu_thumbnail_viewer, "Image Info", "INFO", 0, 0, NULL); mi->func_gen_sub = feh_menu_func_gen_info; feh_menu_add_entry(menu_thumbnail_viewer, NULL, NULL, 0, 0, NULL); - mi = feh_menu_add_entry(menu_thumbnail_viewer, "Options", - "OPTIONS", 0, 0, NULL); - mi->func_gen_sub = feh_menu_func_gen_options; feh_menu_add_entry(menu_thumbnail_viewer, "Close", NULL, CB_CLOSE, 0, NULL); + feh_menu_add_entry(menu_main, "Switch to GIMP", NULL, CB_GIMP_SWITCH, 0, NULL); feh_menu_add_entry(menu_thumbnail_viewer, "Exit", NULL, CB_EXIT, 0, NULL); - m = feh_menu_new(); - m->name = estrdup("THUMBVIEW_CONFIRM"); - feh_menu_add_entry(m, "Confirm", NULL, CB_DELETE_THUMB, 0, NULL); return; } @@ -1216,170 +1049,23 @@ char *path; switch (action) { - case CB_BG_TILED: - path = FEH_FILE(m->fehwin->file->data)->filename; - feh_wm_set_bg(path, m->fehwin->im, 0, 0, 0, data, 0); - break; - case CB_BG_SCALED: - path = FEH_FILE(m->fehwin->file->data)->filename; - feh_wm_set_bg(path, m->fehwin->im, 0, 1, 0, data, 0); - break; - case CB_BG_CENTERED: - path = FEH_FILE(m->fehwin->file->data)->filename; - feh_wm_set_bg(path, m->fehwin->im, 1, 0, 0, data, 0); - break; - case CB_BG_FILLED: - path = FEH_FILE(m->fehwin->file->data)->filename; - feh_wm_set_bg(path, m->fehwin->im, 0, 0, 1, data, 0); - break; - case CB_BG_TILED_NOFILE: - feh_wm_set_bg(NULL, m->fehwin->im, 0, 0, 0, data, 0); - break; - case CB_BG_SCALED_NOFILE: - feh_wm_set_bg(NULL, m->fehwin->im, 0, 1, 0, data, 0); - break; - case CB_BG_CENTERED_NOFILE: - feh_wm_set_bg(NULL, m->fehwin->im, 1, 0, 0, data, 0); - break; - case CB_BG_FILLED_NOFILE: - feh_wm_set_bg(NULL, m->fehwin->im, 0, 0, 1, data, 0); - break; case CB_CLOSE: winwidget_destroy(m->fehwin); break; + case CB_SWITCH: + switch_to_gimp(m->fehwin); + break; case CB_EXIT: winwidget_destroy_all(); break; - case CB_RESET: - if (m->fehwin->has_rotated) { - m->fehwin->im_w = gib_imlib_image_get_width(m->fehwin->im); - m->fehwin->im_h = gib_imlib_image_get_height(m->fehwin->im); - winwidget_resize(m->fehwin, m->fehwin->im_w, m->fehwin->im_h, 0); - } - winwidget_reset_image(m->fehwin); - winwidget_render_image(m->fehwin, 1, 0); - break; case CB_RELOAD: feh_reload_image(m->fehwin, 0, 1); break; - case CB_REMOVE: - feh_filelist_image_remove(m->fehwin, 0); - break; case CB_DELETE: feh_filelist_image_remove(m->fehwin, 1); break; - case CB_REMOVE_THUMB: - feh_thumbnail_mark_removed(FEH_FILE(m->fehwin->file->data), 0); - feh_filelist_image_remove(m->fehwin, 0); - break; - case CB_DELETE_THUMB: - feh_thumbnail_mark_removed(FEH_FILE(m->fehwin->file->data), 1); - feh_filelist_image_remove(m->fehwin, 1); - break; - case CB_SORT_FILENAME: - filelist = gib_list_sort(filelist, feh_cmp_filename); - if (opt.jump_on_resort) { - slideshow_change_image(m->fehwin, SLIDE_FIRST, 1); - } - break; - case CB_SORT_IMAGENAME: - filelist = gib_list_sort(filelist, feh_cmp_name); - if (opt.jump_on_resort) { - slideshow_change_image(m->fehwin, SLIDE_FIRST, 1); - } - break; - case CB_SORT_DIRNAME: - filelist = gib_list_sort(filelist, feh_cmp_dirname); - if (opt.jump_on_resort) { - slideshow_change_image(m->fehwin, SLIDE_FIRST, 1); - } - break; - case CB_SORT_MTIME: - filelist = gib_list_sort(filelist, feh_cmp_mtime); - if (opt.jump_on_resort) { - slideshow_change_image(m->fehwin, SLIDE_FIRST, 1); - } - break; - case CB_SORT_FILESIZE: - filelist = gib_list_sort(filelist, feh_cmp_size); - if (opt.jump_on_resort) { - slideshow_change_image(m->fehwin, SLIDE_FIRST, 1); - } - break; - case CB_SORT_RANDOMIZE: - filelist = gib_list_randomize(filelist); - if (opt.jump_on_resort) { - slideshow_change_image(m->fehwin, SLIDE_FIRST, 1); - } - break; - case CB_FIT: - winwidget_size_to_image(m->fehwin); - break; - case CB_EDIT_ROTATE: - feh_edit_inplace(m->fehwin, data); - break; - case CB_EDIT_MIRROR: - feh_edit_inplace(m->fehwin, INPLACE_EDIT_MIRROR); - break; - case CB_EDIT_FLIP: - feh_edit_inplace(m->fehwin, INPLACE_EDIT_FLIP); - break; - case CB_SAVE_IMAGE: - slideshow_save_image(m->fehwin); - break; - case CB_SAVE_FILELIST: - feh_save_filelist(); - break; - case CB_OPT_DRAW_FILENAME: - MENU_ITEM_TOGGLE(i); - if (MENU_ITEM_IS_ON(i)) - opt.draw_filename = TRUE; - else - opt.draw_filename = FALSE; - winwidget_rerender_all(0); - break; - case CB_OPT_DRAW_ACTIONS: - MENU_ITEM_TOGGLE(i); - if (MENU_ITEM_IS_ON(i)) - opt.draw_actions = TRUE; - else - opt.draw_actions = FALSE; - winwidget_rerender_all(0); - break; - case CB_OPT_KEEP_HTTP: - MENU_ITEM_TOGGLE(i); - if (MENU_ITEM_IS_ON(i)) - opt.keep_http = TRUE; - else - opt.keep_http = FALSE; - break; - case CB_OPT_FREEZE_WINDOW: - MENU_ITEM_TOGGLE(i); - if (MENU_ITEM_IS_ON(i)) { - opt.geom_flags = (WidthValue | HeightValue); - opt.geom_w = m->fehwin->w; - opt.geom_h = m->fehwin->h; - } else { - opt.geom_flags = 0; - } - break; - case CB_OPT_FULLSCREEN: - feh_menu_cb_opt_fullscreen(m, i); - break; - case CB_OPT_AUTO_ZOOM: - MENU_ITEM_TOGGLE(i); - if (MENU_ITEM_IS_ON(i)) - opt.zoom_mode = ZOOM_MODE_MAX; - else - opt.zoom_mode = 0; - winwidget_rerender_all(1); - break; - case CB_OPT_KEEP_ZOOM_VP: - MENU_ITEM_TOGGLE(i); - if (MENU_ITEM_IS_ON(i)) - opt.keep_zoom_vp = 1; - else - opt.keep_zoom_vp = 0; + case CB_GIMP_SWITCH: + switch_to_gimp(m->fehwin); break; } return; @@ -1423,36 +1109,3 @@ return; } -static feh_menu *feh_menu_func_gen_options(feh_menu * m) -{ - feh_menu *mm; - - mm = feh_menu_new(); - mm->name = estrdup("OPTIONS"); - mm->fehwin = m->fehwin; - feh_menu_add_toggle_entry(mm, "Auto-Zoom", NULL, CB_OPT_AUTO_ZOOM, - 0, NULL, opt.zoom_mode); - feh_menu_add_toggle_entry(mm, "Freeze Window Size", NULL, - CB_OPT_FREEZE_WINDOW, 0, NULL, opt.geom_flags); - feh_menu_add_toggle_entry(mm, "Fullscreen", NULL, - CB_OPT_FULLSCREEN, 0, NULL, m->fehwin->full_screen); - feh_menu_add_toggle_entry(mm, "Keep viewport zoom & pos", NULL, - CB_OPT_KEEP_ZOOM_VP, 0, NULL, opt.keep_zoom_vp); - - feh_menu_add_entry(mm, NULL, NULL, 0, 0, NULL); - - feh_menu_add_toggle_entry(mm, "Draw Filename", NULL, - CB_OPT_DRAW_FILENAME, 0, NULL, opt.draw_filename); - feh_menu_add_toggle_entry(mm, "Draw Actions", NULL, - CB_OPT_DRAW_ACTIONS, 0, NULL, opt.draw_actions); - feh_menu_add_toggle_entry(mm, "Keep HTTP Files", NULL, - CB_OPT_KEEP_HTTP, 0, NULL, opt.keep_http); - mm->func_free = feh_menu_func_free_options; - return(mm); -} - -static void feh_menu_func_free_options(feh_menu * m) -{ - feh_menu_free(m); - return; -} diff -Naur feh-3.7.2.orig/src/slideshow.c feh-3.7.2/src/slideshow.c --- feh-3.7.2.orig/src/slideshow.c 2021-09-25 03:23:31.000000000 -0400 +++ feh-3.7.2/src/slideshow.c 2021-10-15 23:09:45.893493540 -0400 @@ -611,42 +611,6 @@ } } -void slideshow_save_image(winwidget win) -{ - char *tmpname; - Imlib_Load_Error err; - char *base_dir = ""; - if (opt.output_dir) { - base_dir = estrjoin("", opt.output_dir, "/", NULL); - } - - if (win->file) { - tmpname = feh_unique_filename(base_dir, FEH_FILE(win->file->data)->name); - } else if (mode) { - char *tmp; - tmp = estrjoin(".", mode, "png", NULL); - tmpname = feh_unique_filename(base_dir, tmp); - free(tmp); - } else { - tmpname = feh_unique_filename(base_dir, "noname.png"); - } - - if (opt.output_dir) { - free(base_dir); - } - - if (opt.verbose) - fprintf(stderr, "saving image to filename '%s'\n", tmpname); - - gib_imlib_save_image_with_error_return(win->im, tmpname, &err); - - if (err) - feh_print_load_error(tmpname, win, err, LOAD_ERROR_IMLIB); - - free(tmpname); - return; -} - gib_list *feh_list_jump(gib_list * root, gib_list * l, int direction, int num) { int i; @@ -684,3 +648,13 @@ } return (ret); } +void switch_to_gimp(winwidget win) +{ + char *fname; + if (win->file) { + fname = FEH_FILE(win->file->data)->filename; + execl("/usr/bin/gimp", "/usr/bin/gimp", fname, (char*) NULL); + } + free(fname); + return 0; +}