Commit Graph

357 Commits (master)

Author SHA1 Message Date
Bert Münnich ee908ca0a1 Simplify cursor reset in image mode
No need to give cursor name. reset_cursor() is now the only place to decide
what cursor to fall back to.
7 years ago
Bert Münnich e310136e02 Mouse drag translates pointer position to image area
This makes mouse panning more direct and faster.
7 years ago
Bert Münnich a20173a42d Detect all file overwrites in autoreload_inotify
mv(1) inside the same filesystem was not detected.

Supporting this case made it necessary to always watch the directory. Turns out
the logic and state keeping between arl_setup() and arl_handle() is easier,
when using different watch descriptors for the file and the directory and not
using a oneshot descriptor for the file.

Requiring an absolute canonical path for arl_setup() simplifies dir and base
name splitting. No need for dirname(3) and basename(3) anymore.
7 years ago
Bert Münnich 3724d3fc17 Revised autoreload interface
Make the header only contain the public interface and nothing from the
implementation. All functions get a handle to their self object, like the img_
and tns_ and win_ functions. All necessary data (file path) is also passed as
an argument, so that no extern redeclarations are needed.

Make arl_setup_dir() private, it's not called outside the module.

Make arl_handle() return true if the file has changed, so that the reloading of
the file can be done by the caller.
7 years ago
Max Voit edb117e3bd Add autoreload support by inotify (and dummy backend nop) 7 years ago
Bert Münnich 1fb3ec576c Properly quit when window gets closed; fixes issue #27 7 years ago
Jakub Wilk c313edc0ad Fix typo 7 years ago
Bert Münnich 5c607ad495 Pass given file names to key-handler instead of real paths
Misbehaving command lines in the key-handler that rewrite the given files and
thus replace symbolic links instead of their targets shall call realpath(1).

Fixes issue #205 and reverts commit 92e3b578.
8 years ago
Bert Münnich ff2ce99bf7 Merge djhejna/floatdelay 8 years ago
Bert Münnich 9a85dd41d8 Ignore button and key events while key-handler is running
Related to issue #253, which originally asked for a non-blocking key-handler.
8 years ago
Don Hejna 27bbaab976 Support for DELAY as a floating point number including less than 1
second while maintaining backward compatibiitiy with integer
arguments.
8 years ago
Paride Legovini 86dc6860f9 Allow opening directories non-recursively 8 years ago
Bert Münnich c280129cef Use Xft for font loading and text drawing 8 years ago
Bert Münnich aabc2bddbd Provide image width and height to image-info script; fixes issue #159 8 years ago
Bert Münnich d3a70a285d Revised error handling
- Functions warn() and die() replaced by GNU-like error(3) function
- Register cleanup() with atexit(3)
- Functions called by cleanup() are marked with CLEANUP and are not allowed to
  call exit(3)
9 years ago
Bert Münnich 851e4288c1 Prefix safe allocation functions with 'e' instead of 's_' 9 years ago
Bert Münnich b096cbd536 Removed unnecessary buffer size constants 9 years ago
Bert Münnich 9a7e97cd89 Use XSI realpath(3) 9 years ago
Bert Münnich 66c3c55759 Use POSIX.1-2008 getline(3) 9 years ago
Bert Münnich e574a6d0dd Removed feature test macro definitions from source files 9 years ago
Bert Münnich e0e96977b3 Removed overcautious parameter checks 9 years ago
Bert Münnich a3838c1984 Always run image-info script after key-handler in image mode; fixes issue #213 9 years ago
Bert Münnich 92e3b57816 Pass real paths to key handler instead of the paths provided by the user
Programs called by the key handler might replace symlinks instead of their
targets.
10 years ago
Bert Münnich 47af0dd7b5 Cache out of view thumbnails in the background 10 years ago
Bert Münnich 9b9294bae6 Use bit-field for boolean flags in fileinfo struct 10 years ago
Bert Münnich 6216bf6c2d Ignore SIGPIPE, caused by key handler exiting before all files got printed, fixes issue #188 10 years ago
Bert Münnich 216ad81b59 Pass file paths to key handler via stdin; fixes issue #187 10 years ago
Bert Münnich 51854c6148 Fixed leakage of pipe descriptors in case of failing fork 10 years ago
Bert Münnich 93e2a757d4 Do not print could-not-open-warnings for files found by directory traversal 10 years ago
Bert Münnich c33f2ad355 Corrected & refactored handling of window bar content...
Old snprintf calls could have overflowed the buffers.
10 years ago
Bert Münnich 8db3191f04 Fixed segfault on image removal with uninitialized thumbnails; fixes issue #177 10 years ago
Bert Münnich ddd028eb3e Unified file count variable for image & thumbnail mode 10 years ago
Bert Münnich b2dbd2fed3 Changed image mark in thumbnail view to small rectangle 10 years ago
Bert Münnich 5fce009b73 Refactored main loop; properly fixes startup issue 10 years ago
Bert Münnich c1e084357c Fixed startup in thumbnail mode with floating window 10 years ago
Bert Münnich eaa269b6cb Revised thumbnail loading...
- Only load the thumbnails that are currently visible in the window
- Unload thumbnails that are leaving the visible area
- Much less memory needed, but scrolling is now slower
- This also unintentionally fixes issue #86
10 years ago
Bert Münnich 52e56c8924 Fixed segfault caused by image removal in thumbnail mode 10 years ago
Bert Münnich 2fbc21a205 Simplified img_frame_animate 10 years ago
Bert Münnich f478385d59 Corrected i_alternate, fixes issue #171 10 years ago
Markus Elfring 0f6cb93a09 Bug #165: Deletion of unnecessary null pointer checks
The function "free" performs input parameter validation.
http://pubs.opengroup.org/onlinepubs/9699919799/functions/free.html

It is therefore not needed to check a passed pointer before this function call.
A corresponding update suggestion was generated by the software "Coccinelle"
from the following semantic patch approach.
http://coccinelle.lip6.fr/

@Remove_unnecessary_pointer_checks1@
expression x;
@@
-if (x != \(0 \| NULL\))
    free(x);

@Remove_unnecessary_pointer_checks2@
expression x;
@@
-if (x != \(0 \| NULL\)) {
    free(x);
    x = \(0 \| NULL\);
-}

@Remove_unnecessary_pointer_checks3@
expression a, b;
@@
-if (a != \(0 \| NULL\) && b != \(0 \| NULL\))
+if (a)
    free(b);

@Remove_unnecessary_pointer_checks4@
expression a, b;
@@
-if (a != \(0 \| NULL\) && b != \(0 \| NULL\)) {
+if (a) {
    free(b);
    b = \(0 \| NULL\);
 }

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
10 years ago
Bert Münnich fe3a1e326f Further simplified thumbnail marks 10 years ago
Bert Münnich 50652f63d9 Full redraw when removing files during thumbnail reloading; fixes issue #164 10 years ago
Bert Münnich e49d38d6f9 Fixed wrong thumbnail-to-file mappings caused by file deletions 10 years ago
Bert Münnich e267dc7793 Pass marked files to external key handler in thumbnail mode; fixes issue #135 10 years ago
Bert Münnich 284be74927 Count number of marked files 10 years ago
Bert Münnich 5b01c15176 Unified file index variable for image & thumbnail mode 10 years ago
Bert Münnich 61f61cae5f Generalized thumbnail loading, allows easier reloading of thumbnails later on 10 years ago
Bert Münnich bb6721549b Overhauled window drawing, yet again; fixes issue #155
- Buffer for window content is bigger than the window, minimizes artifacts
  when window is resized
- Back to using XSetWindowBackgroundPixmap() instead of XCopyArea(),
  no need to handle exposure events; X server can show gray background directly
  after resize event before sxiv redraws the window contents
10 years ago
Bert Münnich 9c92de8584 Added support for multiple commands per key/button mapping; elegant fix for issue #150 10 years ago
Bert Münnich 06164c29b7 Revised command structure and key and mouse button mappings 10 years ago
Bert Münnich 5d0679b855 Show key handler status in bar while it is running 10 years ago
Miroslav Koskar 4cbc7346ff Timeout initial redraw 10 years ago
Bert Münnich 6d7acac3d1 Use real path of all files internally, requires _XOPEN_SOURCE>=500, fixes issue #137 10 years ago
Bert Münnich 653a6ee83b Warn once when external key combo is used and key-handler not installed 10 years ago
Bert Münnich e2fa49ecfe Unified X atom initialization 11 years ago
Bert Münnich f6510b0a04 Merged pull request #129 11 years ago
András Mohari 54d7b7f20f Use a prefix key to execute the key handler
The default prefix key is C-x, and can be changed in config.def.h. The
first key pressed after the prefix key will be passed the external key
handler, unless the key is Escape, which is used to cancel the prefix.
11 years ago
Bert Münnich ed69b483ed Double click on thumbnail to open image 11 years ago
Bert Münnich 304fd382db Adhere to XDG Base Directory Specification; fixes issue #124 11 years ago
Bert Münnich 48954a163a Allow config.h to use multimedia keys (XF86_XK_*); fixes issue #123 11 years ago
Bert Münnich e82397db15 Fixed handling of overloaded key mappings
Issue described here:
https://bbs.archlinux.org/viewtopic.php?pid=1117294#p1117294
11 years ago
Bert Münnich 9632dd88b9 Fixup for 9574150 11 years ago
Bert Münnich 9574150f2d Check file modification time after key handler 11 years ago
Bert Münnich cd34aa2a6b Fixed slideshow delay corruption after GIF animation 11 years ago
Bert Münnich 6a0fa2507c Slideshow mode is back, in a simplified version 11 years ago
Bert Münnich f2e0c492bd Moved external shell commands into exec/key-handler script
Gets called on all unset key mappings. Arguments are: key combo and
current file. Thanks to Francesco Orsenigo (xarvh) for the idea.
11 years ago
Bert Münnich b2eae528ed Proper support for Ctrl/Shift/Alt modifiers in key & mouse mappings 11 years ago
Bastien Dejean 4780ec5463 Close info file descriptor after reading 11 years ago
Bert Münnich cc479ca5ac Fixed segfault when removing first image from file list, fixes issue #112 11 years ago
Bert Münnich 50f9ad14de Refactored remote changes 11 years ago
Bert Münnich 2737fc8b81 Merge remote-tracking branch 'ariand/gamma' 11 years ago
Bert Münnich 38bc23405d Highlight edges of marked images in thumbnail mode 11 years ago
András Mohari 0353e6eea2 Add support for changing the gamma value 11 years ago
Bert Münnich 450c1ed9b5 Fixed inconsistencies in navigation when removing invalid files 11 years ago
Bert Münnich 7d878bd16d Added file marks; fixes issue #94
- Command it_toggle_image_mark (bound to 'm') toggles mark of current
  image
- Command it_navigate_marked (bound to 'N'/'P') can be used to go to
  the next/previous marked image
- When option -o is given, all marked files get printed
11 years ago
Bert Münnich 98972e98f9 Fixed segfault caused by FD_ISSET() on negative fd
Reported by Kris Siwiec
11 years ago
Bert Münnich 6f05e77728 New options: -[io], read/write files from/to stdin/out
Fixes issue #84
11 years ago
Bert Münnich 825c52c33f Made bar fields more distinguishable 11 years ago
Bert Münnich 38ecea3b4d Polished info script execution 11 years ago
Bert Münnich 30802cec0f Spawn info script & update bar contents only when needed 11 years ago
Bert Münnich f3298400e6 Spawn and read from info script without blocking 11 years ago
Bert Münnich bf41012493 Merge remote-tracking branch '4z3/set-user-specified-sizehints' into sizehints
Conflicts:
	window.c
12 years ago
Bert Münnich 08ae25da22 Refactored function definitions to use dangling brace 12 years ago
Bert Münnich 6d3bbc6d5e Updated/corrected license header 12 years ago
tv 3f25b907bd When using -g hint the WM that we've got user specified geometry
Without this some window managers (e.g. fvwm) will ignore the initial
window position and place it according to it's own rules.
12 years ago
muennich d6a475e4b1 Simplified status bar, filled by user script 12 years ago
Bert Münnich cd929eabfe Fixed issue #73 12 years ago
muennich 5106472d8b Fixed issue #72 12 years ago
Bert Münnich 0155223a1a Merge branch 'newdraw' 12 years ago
Bert Münnich 1ae06ffd09 Next try to fix issue #71 12 years ago
Bert Münnich 4a5d5d26aa Overhauled window drawing
- Draw onto pixmap as before, but use the same size for the pixmap as
  for the window, allocate new pixmap after configure requests
- Use XCopyArea() instead of XSetWindowBackgroundPixmap(), which now
  requires handling of Expose events
12 years ago
Bert Münnich fd519ffc40 Disregard obsolete events, fixed issue #64 12 years ago
Bert Münnich f2a3d73212 New command: i_alternate, go to last image, issue #65 12 years ago
Bert Münnich d7ff54bb6e Optimized redraw timeout after window resize for tiling window managers; related to issue #44 12 years ago
Bert Münnich 751ebb3b29 Fixed issue #39: missing include of <sys/select.h> 12 years ago
Bert Münnich ed2c9f7caa Display full name in info bar, if there is enough space 12 years ago
Bert Münnich a329615c68 Show info message in bar while loading thumbnails 13 years ago
Bert Münnich d407dd65d5 Already in the year 2012 13 years ago
Bert Münnich b752d5c594 Added symbol BAR_SEPARATOR 13 years ago
Bert Münnich b8458271fb Added text bar on bottom of window 13 years ago
Bert Münnich 8fc7cb73b3 Nicer window title 13 years ago
Bert Münnich c3c95ab218 Removed slideshow support 13 years ago
Bert Münnich 71a7940d74 Better fix for issue #25 13 years ago
Bert Münnich 1cdbeb972a Added screen-wise scrolling for thumbnail mode 13 years ago
Bert Münnich 867940ea85 Pan by pixel count, if number prefix given 13 years ago
Bert Münnich dc727b8dce Added support for number prefix for commands 13 years ago
Bert Münnich 36177fb180 Updated contact information 13 years ago
Bert Münnich 4383a651c7 Strictly adhere to ANSI-C standard 13 years ago
Bert Münnich a09b20c5e6 Use void for empty argument lists 13 years ago
Bert Münnich 8dcf682de9 Made all conditionals more precise 13 years ago
Bert Münnich 22d4e991d5 Transformed function macros in util.h to inline functions 13 years ago
Bert Münnich d08408e942 Make use of EXIT_* macros (2) 13 years ago
rck 3a81af41ac make use of EXIT_ macros 13 years ago
Bert Münnich 515e410451 Use win_t member in img_t & tns_t instead of parameters 13 years ago
Bert b2a2a62b7b Added own bool type 13 years ago
Bert 510512714d Added slideshow support 13 years ago
Bert 6e575b0f72 Strict conformance to IEEE Std 1003.1-2001 13 years ago
Bert 8f34b7e95c Load as much of a corrupted gif file as possible 13 years ago
Bert 711494ad36 Avoid conflicting macros 13 years ago
Bert 2bbdd2f5b9 Fixed title-update in thumb mode 13 years ago
Bert d585b86354 Reformated license header 13 years ago
Bert c2320a2f49 Fixed remove_file() 13 years ago
Bert a7a849761f Simplified cursor resetting 13 years ago
Bert abb5feeb78 Corrected timeout handling 13 years ago
Bert dcd04e526d Corrected thumbnail loading and timeout handling 13 years ago
Bert 1e84773276 Data driven timeout handling 13 years ago
Bert bb577d274d Added command to toggle gif animations 13 years ago
Bert 8b3ae5027e Added support for gif animation 13 years ago
Bert 79bd86defb Refactored img_load_gif()
- Corrected handling of transparency settings for individual frames
- Corrected handling of different frame dimensions & offsets
13 years ago
Bert 86a6f00112 Added support for multi-frame images 13 years ago
Bert 1d749382f0 Put event handling back into main.c; events -> commands 13 years ago
Bert 1d7849efc1 Added force parameter to tns_load() to disregard cache 13 years ago
Bert 421f012022 Renamed application modes 13 years ago
Bert 8763f6930f Corrected FSF address in license headers 13 years ago
Bert ff013dd009 Revised handling of file names & paths 13 years ago
Bert b8ff1677b1 Major code refactoring
- Configurable key and mouse mappings in config.h
- Put event handling code from main.c into events.[ch]
13 years ago
Bert a271e16744 Reduced usage of preprocessor macros 13 years ago
Bert dde2d9d023 Support XK_KP_{Add,Subtract} for zooming 13 years ago
Bert bd87ae9346 All timeouts in milliseconds 13 years ago
Bert f52603b31a Small refactoring 13 years ago
Bert a6100373c1 New mappings: ctrl-[hjkl], pan image one window width/height 13 years ago
Bert ea23115af4 Use getline instead of readline 13 years ago
Bert 2252a0148d New option: -n, start at given picture 13 years ago
Bert 00e6cd2bd1 Show image dimension in window title 13 years ago
Bert 485e6c863a H/J/K/L mappings to pan to edges 13 years ago
Bert d54e64faae Fixed background color for non-EWMH-compliant WMs 13 years ago
Bert ba293b09df Center zoomed area 13 years ago
Bert 548b383f0b Fixed mouse cursor 13 years ago
Bert c58307ba38 Merged commands.h into config.h 13 years ago
Bert 5f8201110e Slightly changed introductory text 13 years ago