Hello community, here is the log from the commit of package feh for openSUSE:Factory checked in at 2015-10-25 14:18:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/feh (Old) and /work/SRC/openSUSE:Factory/.feh.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "feh" Changes: -------- --- /work/SRC/openSUSE:Factory/feh/feh.changes 2015-07-12 22:53:26.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.feh.new/feh.changes 2015-10-25 14:18:16.000000000 +0100 @@ -1,0 +2,17 @@ +Sat Oct 24 14:44:39 UTC 2015 - [email protected] + +- update to 2.14 +* Add --xinerama-index option for background setting +* When removing the last image in slidsehow mode, stay on the last (previously + second-to-last) image +* Allow --sort and --randomize to override each other (most recently specified + option wins) instead of always preferring --sort +* Thumbnail mode: Mark image as processed when executing an action (--action) by + clicking on an image +* It is now possible to override feh's idea of the active xinerama screen using the + --xinerama-index option +* Remove (undocumented) feature allowing to override feh's idea of the active + xinerama screen by setting the XINERAMA_SCREEN environment variable +- remove obsolete gpg macro + +------------------------------------------------------------------- Old: ---- feh-2.13.1.tar.bz2 feh-2.13.1.tar.bz2.asc New: ---- feh-2.14.tar.bz2 feh-2.14.tar.bz2.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ feh.spec ++++++ --- /var/tmp/diff_new_pack.NclfQv/_old 2015-10-25 14:18:17.000000000 +0100 +++ /var/tmp/diff_new_pack.NclfQv/_new 2015-10-25 14:18:17.000000000 +0100 @@ -17,7 +17,7 @@ Name: feh -Version: 2.13.1 +Version: 2.14 Release: 0 Summary: Fast and Lightweight Image Viewer License: MIT and LGPL-2.0+ @@ -37,7 +37,6 @@ # PATCH-FIX-UPSTREAM feh-fix_sighandler.patch https://github.com/derf/feh/issues/70 [email protected] -- bad prototype for a sighandler_t and a funky unportable pointer cast Patch5: feh-2.12-fix_sighandler.patch BuildRequires: curl-devel -BuildRequires: gpg-offline BuildRequires: libjpeg-devel BuildRequires: libpng-devel BuildRequires: xorg-x11-devel @@ -57,7 +56,6 @@ montages as index prints with many user-configurable options. %prep -%gpg_verify %{SOURCE3} %setup -q %patch1 -p1 %patch2 -p1 ++++++ feh-2.13.1.tar.bz2 -> feh-2.14.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.13.1/ChangeLog new/feh-2.14/ChangeLog --- old/feh-2.13.1/ChangeLog 2015-05-24 11:46:21.000000000 +0200 +++ new/feh-2.14/ChangeLog 2015-10-04 10:03:43.000000000 +0200 @@ -1,3 +1,20 @@ +Sun, 04 Oct 2015 10:01:20 +0200 + +* Release v2.14 + * Add --xinerama-index option for background setting + (patch by James Knight) + * When removing the last image in slidsehow mode, stay on the last + (previously second-to-last) image (patch by Lior Shiponi) + * Allow --sort and --randomize to override each other (most recently + specified option wins) instead of always preferring --sort + * Thumbnail mode: Mark image as processed when executing an action + (--action) by clicking on an image + * It is now possible to override feh's idea of the active xinerama screen + using the --xinerama-index option + * Remove (undocumented) feature allowing to override feh's idea of the + active xinerama screen by setting the XINERAMA_SCREEN environment + variable + Sun, 24 May 2015 11:45:18 +0200 * Release v2.13.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.13.1/config.mk new/feh-2.14/config.mk --- old/feh-2.13.1/config.mk 2015-05-24 11:46:21.000000000 +0200 +++ new/feh-2.14/config.mk 2015-10-04 10:03:43.000000000 +0200 @@ -1,5 +1,5 @@ PACKAGE ?= feh -VERSION ?= 2.13.1 +VERSION ?= 2.14 # Prefix for all installed files PREFIX ?= /usr/local diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.13.1/man/feh.pre new/feh-2.14/man/feh.pre --- old/feh-2.13.1/man/feh.pre 2015-05-24 11:46:21.000000000 +0200 +++ new/feh-2.14/man/feh.pre 2015-10-04 10:03:43.000000000 +0200 @@ -13,7 +13,7 @@ . .Nm .Op Ar options -.Ar files or directories or URLs ... +.Op Ar files No | Ar directories No | Ar URLs ... . . .Sh VERSION @@ -36,6 +36,10 @@ started by .Pq graphical file managers to view an image. +By default +.Pq unless arguments or a filelist are specified +.Nm +displays all files in the current directory. . .Pp . @@ -51,11 +55,12 @@ . .Pp . -A little note about EXIF support: The recommended way to display EXIF data is -using exiv2 / exifgrep via +EXIF tags are supported either using exiv2 / exifgrep via .Cm --info -.Pq see the Sx USAGE EXAMPLES No section . -However, if you compile feh with exif=1, you can also display it directly. +.Pq see the Sx USAGE EXAMPLES No section , +or by compiling +.Nm +with exif=1. . . .Sh MODES @@ -639,6 +644,30 @@ . output version information and exit. . +.It Cm --xinerama-index Ar screen +. +Override +.Nm Ns No 's +idea of the active Xinerama screen. May be useful in certain circumstances +where the window manager places the feh window on Xinerama screen A while +.Nm +assumes that it will be placed on screen B. +. +.Pp +. +In background setting mode: When used with any option other than +.Cm --bg-tile : +Only set wallpaper on +.Ar screen . +All other screens will be filled black/white. +. +This is most useful in a Xinerama configuration with +overlapping screens. For instance, assume you have two overlapping displays +(index 0 and 1), where index 0 is smaller. To center a background on the +display with index 0 and fill the extra space on index 1 black/white, use +.Qq --xinerama-index 0 +when setting the wallpaper. +. .It Cm --zoom Ar percent No | Cm max No | Cm fill . Zoom images by @@ -820,7 +849,12 @@ . Use .Cm --no-xinerama -to treat the whole X display as one screen when setting wallpapers. +to treat the whole X display as one screen when setting wallpapers. You +may also use +.Cm --xinerama-index +to use +.Nm +as a background setter for a specific screen. . .Bl -tag -width indent . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.13.1/src/events.c new/feh-2.14/src/events.c --- old/feh-2.13.1/src/events.c 2015-05-24 11:46:21.000000000 +0200 +++ new/feh-2.14/src/events.c 2015-10-04 10:03:43.000000000 +0200 @@ -378,10 +378,13 @@ y /= winwid->zoom; thumbfile = feh_thumbnail_get_file_from_coords(x, y); if (thumbfile) { - if (opt.actions[0]) + if (opt.actions[0]) { feh_action_run(thumbfile, opt.actions[0]); - else + if (!opt.hold_actions[0]) + feh_thumbnail_mark_removed(thumbfile, 0); + } else { feh_thumbnail_show_fullsize(thumbfile); + } } } } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.13.1/src/imlib.c new/feh-2.14/src/imlib.c --- old/feh-2.13.1/src/imlib.c 2015-05-24 11:46:21.000000000 +0200 +++ new/feh-2.14/src/imlib.c 2015-10-04 10:03:43.000000000 +0200 @@ -78,8 +78,8 @@ XineramaQueryVersion(disp, &major, &minor); xinerama_screens = XineramaQueryScreens(disp, &num_xinerama_screens); - if (getenv("XINERAMA_SCREEN")) - xinerama_screen = atoi(getenv("XINERAMA_SCREEN")); + if (opt.xinerama_index >= 0) + xinerama_screen = opt.xinerama_index; else { xinerama_screen = 0; XQueryPointer(disp, root, &dw, &dw, &px, &py, &di, &di, &du); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.13.1/src/keyevents.c new/feh-2.14/src/keyevents.c --- old/feh-2.13.1/src/keyevents.c 2015-05-24 11:46:21.000000000 +0200 +++ new/feh-2.14/src/keyevents.c 2015-10-04 10:03:43.000000000 +0200 @@ -731,9 +731,8 @@ break; } } - if (getenv("XINERAMA_SCREEN")) - curr_screen = xinerama_screen = - atoi(getenv("XINERAMA_SCREEN")); + if (opt.xinerama_index >= 0) + curr_screen = xinerama_screen = opt.xinerama_index; } #endif /* HAVE_LIBXINERAMA */ winwid->full_screen = !winwid->full_screen; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.13.1/src/menu.c new/feh-2.14/src/menu.c --- old/feh-2.13.1/src/menu.c 2015-05-24 11:46:21.000000000 +0200 +++ new/feh-2.14/src/menu.c 2015-10-04 10:03:43.000000000 +0200 @@ -1154,9 +1154,8 @@ } } - if (getenv("XINERAMA_SCREEN")) - curr_screen = xinerama_screen = - atoi(getenv("XINERAMA_SCREEN")); + if (opt.xinerama_index >= 0) + curr_screen = xinerama_screen = opt.xinerama_index; } #endif /* HAVE_LIBXINERAMA */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.13.1/src/options.c new/feh-2.14/src/options.c --- old/feh-2.13.1/src/options.c 2015-05-24 11:46:21.000000000 +0200 +++ new/feh-2.14/src/options.c 2015-10-04 10:03:43.000000000 +0200 @@ -70,6 +70,7 @@ #ifdef HAVE_LIBXINERAMA /* if we're using xinerama, then enable it by default */ opt.xinerama = 1; + opt.xinerama_index = -1; #endif /* HAVE_LIBXINERAMA */ feh_getopt_theme(argc, argv); @@ -404,6 +405,7 @@ {"no-fehbg" , 0, 0, 236}, {"keep-zoom-vp" , 0, 0, 237}, {"scroll-step" , 1, 0, 238}, + {"xinerama-index", 1, 0, 239}, {0, 0, 0, 0} }; @@ -528,6 +530,11 @@ "sort by filename", optarg); opt.sort = SORT_FILENAME; } + if (opt.randomize) { + weprintf("commandline contains --randomize and --sort. " + "--randomize has been unset"); + opt.randomize = 0; + } break; case 'T': theme = estrdup(optarg); @@ -642,6 +649,11 @@ break; case 'z': opt.randomize = 1; + if (opt.sort != SORT_NONE) { + weprintf("commandline contains --sort and --randomize. " + "--sort has been unset"); + opt.sort = SORT_NONE; + } break; case '|': opt.start_list_at = estrdup(optarg); @@ -744,6 +756,9 @@ case 238: opt.scroll_step = atoi(optarg); break; + case 239: + opt.xinerama_index = atoi(optarg); + break; default: break; } @@ -791,12 +806,6 @@ eprintf("You cannot combine --list with other modes"); } - if (opt.sort && opt.randomize) { - weprintf("You cant sort AND randomize the filelist...\n" - "randomize mode has been unset\n"); - opt.randomize = 0; - } - if (opt.loadables && opt.unloadables) { eprintf("You cannot combine --loadable with --unloadable"); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.13.1/src/options.h new/feh-2.14/src/options.h --- old/feh-2.13.1/src/options.h 2015-05-24 11:46:21.000000000 +0200 +++ new/feh-2.14/src/options.h 2015-10-04 10:03:43.000000000 +0200 @@ -109,6 +109,7 @@ int default_zoom; int zoom_mode; unsigned char adjust_reload; + int xinerama_index; /* signed in case someone wants to invert scrolling real quick */ int scroll_step; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.13.1/src/slideshow.c new/feh-2.14/src/slideshow.c --- old/feh-2.13.1/src/slideshow.c 2015-05-24 11:46:21.000000000 +0200 +++ new/feh-2.14/src/slideshow.c 2015-10-04 10:03:43.000000000 +0200 @@ -621,7 +621,12 @@ feh_file_rm_and_free(filelist, doomed); exit(0); } - slideshow_change_image(winwid, SLIDE_NEXT, 0); + if (doomed->next) { + slideshow_change_image(winwid, SLIDE_NEXT, 0); + } + else { + slideshow_change_image(winwid, SLIDE_PREV, 0); + } if (do_delete) filelist = feh_file_rm_and_free(filelist, doomed); else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.13.1/src/wallpaper.c new/feh-2.14/src/wallpaper.c --- old/feh-2.13.1/src/wallpaper.c 2015-05-24 11:46:21.000000000 +0200 +++ new/feh-2.14/src/wallpaper.c 2015-10-04 10:03:43.000000000 +0200 @@ -298,21 +298,30 @@ /* string for sticking in ~/.fehbg */ char *fehbg = NULL; + char fehbg_args[512]; + fehbg_args[0] = '\0'; char *home; char filbuf[4096]; - char fehbg_xinerama[] = "--no-xinerama"; char *bgfill = NULL; bgfill = opt.image_bg == IMAGE_BG_WHITE ? "--image-bg white" : "--image-bg black" ; +#ifdef HAVE_LIBXINERAMA + if (opt.xinerama) { + if (opt.xinerama_index >= 0) { + snprintf(fehbg_args, sizeof(fehbg_args), + "--xinerama-index %d", opt.xinerama_index); + } + } + else + snprintf(fehbg_args, sizeof(fehbg_args), "--no-xinerama"); +#endif /* HAVE_LIBXINERAMA */ + /* local display to set closedownmode on */ Display *disp2; Window root2; int depth2; int in, out, w, h; - if (opt.xinerama) - fehbg_xinerama[0] = '\0'; - D(("Falling back to XSetRootWindowPixmap\n")); /* Put the filename in filbuf between ' and escape ' in the filename */ @@ -357,16 +366,30 @@ pmap_d1 = XCreatePixmap(disp, root, scr->width, scr->height, depth); #ifdef HAVE_LIBXINERAMA - if (opt.xinerama && xinerama_screens) - for (i = 0; i < num_xinerama_screens; i++) - feh_wm_set_bg_scaled(pmap_d1, im, use_filelist, - xinerama_screens[i].x_org, xinerama_screens[i].y_org, - xinerama_screens[i].width, xinerama_screens[i].height); + if (opt.xinerama_index >= 0) { + if (opt.image_bg == IMAGE_BG_WHITE) + gcval.foreground = WhitePixel(disp, DefaultScreen(disp)); + else + gcval.foreground = BlackPixel(disp, DefaultScreen(disp)); + gc = XCreateGC(disp, root, GCForeground, &gcval); + XFillRectangle(disp, pmap_d1, gc, 0, 0, scr->width, scr->height); + XFreeGC(disp, gc); + } + + if (opt.xinerama && xinerama_screens) { + for (i = 0; i < num_xinerama_screens; i++) { + if (opt.xinerama_index < 0 || opt.xinerama_index == i) { + feh_wm_set_bg_scaled(pmap_d1, im, use_filelist, + xinerama_screens[i].x_org, xinerama_screens[i].y_org, + xinerama_screens[i].width, xinerama_screens[i].height); + } + } + } else #endif /* HAVE_LIBXINERAMA */ feh_wm_set_bg_scaled(pmap_d1, im, use_filelist, 0, 0, scr->width, scr->height); - fehbg = estrjoin(" ", "feh", fehbg_xinerama, "--bg-scale", filbuf, NULL); + fehbg = estrjoin(" ", "feh", fehbg_args, "--bg-scale", filbuf, NULL); } else if (centered) { D(("centering\n")); @@ -380,11 +403,15 @@ XFillRectangle(disp, pmap_d1, gc, 0, 0, scr->width, scr->height); #ifdef HAVE_LIBXINERAMA - if (opt.xinerama && xinerama_screens) - for (i = 0; i < num_xinerama_screens; i++) - feh_wm_set_bg_centered(pmap_d1, im, use_filelist, - xinerama_screens[i].x_org, xinerama_screens[i].y_org, - xinerama_screens[i].width, xinerama_screens[i].height); + if (opt.xinerama && xinerama_screens) { + for (i = 0; i < num_xinerama_screens; i++) { + if (opt.xinerama_index < 0 || opt.xinerama_index == i) { + feh_wm_set_bg_centered(pmap_d1, im, use_filelist, + xinerama_screens[i].x_org, xinerama_screens[i].y_org, + xinerama_screens[i].width, xinerama_screens[i].height); + } + } + } else #endif /* HAVE_LIBXINERAMA */ feh_wm_set_bg_centered(pmap_d1, im, use_filelist, @@ -392,24 +419,38 @@ XFreeGC(disp, gc); - fehbg = estrjoin(" ", "feh", fehbg_xinerama, bgfill, "--bg-center", filbuf, NULL); + fehbg = estrjoin(" ", "feh", fehbg_args, bgfill, "--bg-center", filbuf, NULL); } else if (filled == 1) { pmap_d1 = XCreatePixmap(disp, root, scr->width, scr->height, depth); #ifdef HAVE_LIBXINERAMA - if (opt.xinerama && xinerama_screens) - for (i = 0; i < num_xinerama_screens; i++) - feh_wm_set_bg_filled(pmap_d1, im, use_filelist, - xinerama_screens[i].x_org, xinerama_screens[i].y_org, - xinerama_screens[i].width, xinerama_screens[i].height); + if (opt.xinerama_index >= 0) { + if (opt.image_bg == IMAGE_BG_WHITE) + gcval.foreground = WhitePixel(disp, DefaultScreen(disp)); + else + gcval.foreground = BlackPixel(disp, DefaultScreen(disp)); + gc = XCreateGC(disp, root, GCForeground, &gcval); + XFillRectangle(disp, pmap_d1, gc, 0, 0, scr->width, scr->height); + XFreeGC(disp, gc); + } + + if (opt.xinerama && xinerama_screens) { + for (i = 0; i < num_xinerama_screens; i++) { + if (opt.xinerama_index < 0 || opt.xinerama_index == i) { + feh_wm_set_bg_filled(pmap_d1, im, use_filelist, + xinerama_screens[i].x_org, xinerama_screens[i].y_org, + xinerama_screens[i].width, xinerama_screens[i].height); + } + } + } else #endif /* HAVE_LIBXINERAMA */ feh_wm_set_bg_filled(pmap_d1, im, use_filelist , 0, 0, scr->width, scr->height); - fehbg = estrjoin(" ", "feh", fehbg_xinerama, "--bg-fill", filbuf, NULL); + fehbg = estrjoin(" ", "feh", fehbg_args, "--bg-fill", filbuf, NULL); } else if (filled == 2) { @@ -422,11 +463,15 @@ XFillRectangle(disp, pmap_d1, gc, 0, 0, scr->width, scr->height); #ifdef HAVE_LIBXINERAMA - if (opt.xinerama && xinerama_screens) - for (i = 0; i < num_xinerama_screens; i++) - feh_wm_set_bg_maxed(pmap_d1, im, use_filelist, - xinerama_screens[i].x_org, xinerama_screens[i].y_org, - xinerama_screens[i].width, xinerama_screens[i].height); + if (opt.xinerama && xinerama_screens) { + for (i = 0; i < num_xinerama_screens; i++) { + if (opt.xinerama_index < 0 || opt.xinerama_index == i) { + feh_wm_set_bg_maxed(pmap_d1, im, use_filelist, + xinerama_screens[i].x_org, xinerama_screens[i].y_org, + xinerama_screens[i].width, xinerama_screens[i].height); + } + } + } else #endif /* HAVE_LIBXINERAMA */ feh_wm_set_bg_maxed(pmap_d1, im, use_filelist, @@ -434,7 +479,7 @@ XFreeGC(disp, gc); - fehbg = estrjoin(" ", "feh", fehbg_xinerama, bgfill, "--bg-max", filbuf, NULL); + fehbg = estrjoin(" ", "feh", fehbg_args, bgfill, "--bg-max", filbuf, NULL); } else { if (use_filelist) @@ -465,8 +510,9 @@ } free(path); } - free(fehbg); } + + free(fehbg); /* create new display, copy pixmap to new display */ disp2 = XOpenDisplay(NULL); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.13.1/src/winwidget.c new/feh-2.14/src/winwidget.c --- old/feh-2.13.1/src/winwidget.c 2015-05-24 11:46:21.000000000 +0200 +++ new/feh-2.14/src/winwidget.c 2015-10-04 10:03:43.000000000 +0200 @@ -826,8 +826,8 @@ } } - if (getenv("XINERAMA_SCREEN")) - xinerama_screen = atoi(getenv("XINERAMA_SCREEN")); + if (opt.xinerama_index >= 0) + xinerama_screen = opt.xinerama_index; scr_width = xinerama_screens[xinerama_screen].width; scr_height = xinerama_screens[xinerama_screen].height; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.13.1/test/feh-i.t new/feh-2.14/test/feh-i.t --- old/feh-2.13.1/test/feh-i.t 2015-05-24 11:46:21.000000000 +0200 +++ new/feh-2.14/test/feh-i.t 2015-10-04 10:03:43.000000000 +0200 @@ -125,9 +125,9 @@ SendKeys('p'); test_win_title( $win, 'feh [3 of 3] - test/ok/gif' ); SendKeys('{DEL}'); -test_win_title( $win, 'feh [1 of 2] - test/ok/png' ); +test_win_title( $win, 'feh [2 of 2] - test/ok/jpg' ); SendKeys('{DEL}'); -test_win_title( $win, 'feh [1 of 1] - test/ok/jpg' ); +test_win_title( $win, 'feh [1 of 1] - test/ok/png' ); SendKeys('{DEL}'); test_no_win("Removed all images from slideshow");
