Commit graph

932 commits

Author SHA1 Message Date
Bert Münnich 6a662ae5e0 Document undocumented "-" behavior 2018-12-29 19:03:34 +01:00
Bert Münnich 674f69f2c9 Fix file list indexes when deleting last image
Fixes issue #331
2018-12-29 18:51:14 +01:00
Bert Münnich 0bf3265430 Set window title only once at startup
Putting image info in the title predates the info bar; it no longer seems
necessary.

Fixes issue #318.
2018-10-15 15:29:39 +02:00
Bert Münnich 971f5d6694 Revise Makefile
Use uppercase for externally defined macros and lowercase for macros defined in
the makefile.

Also simplify generation of version.h.
2018-10-11 13:41:45 +02:00
Patryk Czachurski f7714eaf90 Set executable bit on scripts in exec folder 2018-08-04 20:20:44 +02:00
Kacper Gutowski e648c11899 Respect updated path format when cleaning cache
Since d8114e8 the file name is used for caching as-is without adding
.jpg at the end, but sxiv -c still expected old format causing it to
remove all fresh thumbnails.
2018-07-30 10:33:23 +02:00
Kacper Gutowski e6c9218319 Don't skip dot files when cleaning cache 2018-07-30 10:28:35 +02:00
Bert Münnich 1613b42411 Simplify cg_mark_range further 2018-06-10 12:39:23 +02:00
Bert Münnich 1de5f06f83 Set global markidx whenever a single img is (un)marked
This also sets *markidx* when using the right mouse button in thumbnail mode.
2018-06-09 14:07:13 +02:00
Bert Münnich 5367b75867 (Un)mark thumbnails while holding Button3 down 2018-06-09 13:18:18 +02:00
Bert Münnich 87a1ace8a1 (Un)mark single image through generic function 2018-06-09 13:12:46 +02:00
Bert Münnich 1892ed9fd7 Simplify cg_mark_range 2018-06-09 12:17:03 +02:00
Bert Münnich a1165df878 Rename variable toggledidx to markidx 2018-06-09 11:57:42 +02:00
Bert Münnich 1e5cc7e382 Fix cg_mark_range after removing images from file list 2018-06-09 11:55:20 +02:00
Bert Münnich cc476be7cc Remove unnecessary special cases in cg_mark_range 2018-06-09 11:52:48 +02:00
Bert Münnich 7efcf55a5f Change default key-bindings of mark commands
*Shift-m* feels much more natural for *mark_range* and *Ctrl-u* is decent
enough for *unmark_all*.
2018-06-09 11:51:03 +02:00
Daniel Lublin 6e696ba98c Add mark range function
Sets the marked state of all images ranging from the latest marked/unmarked
image to the current image, to the state of that latest toggled image.
2018-06-09 11:44:47 +02:00
Bert Münnich 8bf1adcd9a New version scheme
VERSION string between releases is last release suffixed with '+'.
Additionally, use output of git-describe instead of VERSION string, if it is
not empty.
2018-06-09 11:33:30 +02:00
Bert Münnich b78aaee9d7 Initialize window bar buffers to empty string
Fixes issue #308.
2018-04-11 09:55:28 +02:00
Bert Münnich 09b04d7aef Revise waiting for child processes 2018-02-18 14:51:46 +01:00
Bert Münnich 762420cdf1 Close image-info explicitly 2018-02-18 14:12:41 +01:00
Bert Münnich 4124857137 Skip imlib cache when reloading due to inotify event 2018-02-18 14:12:41 +01:00
Bert Münnich 48e0b70ad3 Ignore outdated inotify events 2018-02-18 14:12:41 +01:00
Bert Münnich 6d1e00627b Do not limit fit-to-win to smallest zoom level
Related to issue #303
2018-01-22 10:48:56 +01:00
Bert Münnich 727939b3e6 Make zoomdiff compare impact on image dimensions
Before that zoomdiff was a merely heuristic.

Related to issue #303
2018-01-22 10:37:10 +01:00
Bert Münnich 4c294011a9 Use float for ox/oy compare values
Fixes issue #302
2018-01-22 10:18:32 +01:00
phi d5c5708110 Use argument to select between two drag methods 2018-01-22 09:46:38 +01:00
Bert Münnich 8017b75de4 Refactoring 2018-01-09 19:37:56 +01:00
Hyleus 6d261b4e7a Fix a potential uninitialized variable 2018-01-09 19:31:36 +01:00
Leonardo Taccari 9707ca9b8f Fix autoreload-nop accidentally selecting on stdin
When sxiv is built with AUTORELOAD=nop if something is feed via stdin it
will start to infinitely call select() leading to a 100% CPU usage.

Thanks to @sdx23 for helping in analyzing that problem!

Fixes issue #297.
2017-12-13 09:43:13 +01:00
Bert Münnich 8a9e3ea43e Separate bar fields only by spaces 2017-12-07 21:44:59 +01:00
Bert Münnich e63843d369 Simplify drawing of bar text
Non-fitting text is truncated by simply cutting it off.

win_textwidth() has been replaced by a simple macro wrapper around
win_draw_text() with a maximum width of zero, which results in a dry-run that
still calculates the number of pixels used by the text, much like snprintf(3)
with a buffer length of zero.
2017-12-07 21:29:44 +01:00
Bert Münnich 3c7d6f3528 Replace utf8codepoint with Chris Wellons' utf8_decode
Code under a different license should be kept in a separate file. This
implemention is a single header file with ~65 lines, so it better fits this
requirement.
2017-12-07 21:19:53 +01:00
Bert Münnich 69b2d3cafd win_textwidth is no longer needed outside window.c 2017-12-07 14:19:35 +01:00
Bert Münnich 30e2356622 Remove obsolete files[].base 2017-12-07 14:16:32 +01:00
Bert Münnich 004fcd5c5b Left bar shows file name as given by user 2017-12-07 14:08:37 +01:00
Squibby eb96c71725 Try to match a fallback font if needed
Fixes #276

Instead of rendering the entire filename at once, Xft will let us do it
character by character. This will allow sxiv to query fontconfig for
a font that can provide any missing codepoints, if needed.

A known issue of this patch is that the "..." dots rendering will not
work properly for very long multibyte filenames. That is because we
cannot easily predict the final width of the rendered filename before
drawing it. I couldn't figure out a clean way to deal with this, so I
ended up just truncating the offending filenames.
2017-12-06 20:39:07 -03:00
Bert Münnich f02661879f Reject text files resembling TGA images
Fixes issue #295

The imlib2 TGA loader returns an imlib image handle without any actual data
when given a text file like this:

    T
    Content-Type: application/javascript
    Content-Length: 3836
    Last-Modified: Wed, 23 Sep 2015 12:25:47 GMT
    Etag: "56029a4b-efc"
    Expires: Sat, 20 Aug 2016 15:14:33 GMT
    Cache-Control: max-age=604800, public
    Accept-Ranges: bytes

Fortunately, `imlib_image_get_data()` returns NULL in this case, so that we can
use it as an additional check when opening files.
2017-11-23 14:35:34 +01:00
Bert Münnich 9dabc5f988 Stable version 24 2017-10-27 17:25:56 +02:00
Bert Münnich 64b885b6a9 Fix navigating from last to previous image over invalid files 2017-10-26 22:20:39 +02:00
Bert Münnich 2d34c4b9bf Set LC_COLLATE for -r file list sorting
Fixes issue #293.
2017-10-24 21:43:36 +02:00
Bert Münnich 96445c3268 List objs in Makefile not srcs 2017-10-23 10:28:28 +02:00
Bert Münnich 79bcc2ba4a Make clean removes all object files 2017-10-23 10:27:14 +02:00
Bert Münnich df714376c5 Always take {C,CPP,LD}FLAGS from environment
Our own default values go into accompanying macros prefixed with DEF_.
2017-10-22 12:26:20 +02:00
Bert Münnich 4d2fc0b889 Back to VPATH for out-of-source builds
OpenBSD make supports VPATH but not pattern rules. Everything in the new
Makefile should work no matter what make program is used.
2017-10-19 13:29:25 +02:00
Bert Münnich d2b3a18d60 Addendum to 1ace4fb0 2017-10-19 13:02:08 +02:00
Bert Münnich 1ace4fb09c No more automatic dependency tracking
The new Makefile should work with the make programs shipped with FreeBSD,
NetBSD and OpenBSD.
2017-10-16 21:19:22 +02:00
Bert Münnich 24cf812bb2 No more config.mk 2017-10-16 21:16:05 +02:00
Bert Münnich 2cf9cfc700 Small refinements in Makefile 2017-10-16 21:15:38 +02:00
Bert Münnich 148026007c One header file for type definitions and function declarations 2017-10-16 21:10:35 +02:00