Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If moving to dual-licensing, this text will be confusing. It's also
a lot of noise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
On certain platforms [0] a char may be unsigned [1]. The loop for
getopt would loop forever because:
(char)-1 => 255 and 255 != -1
A signed char also worked. I don't know what that would mean for
performance or portability. int feels simpler to me.
[0]: I'm using Arch Linux ARM on the Samsung Chromebook 2, which is
armv7h. Not sure about other ARM platforms. With this fix, imv
appears to work correctly.
details: https://archlinuxarm.org/platforms/armv7/samsung/samsung-chromebook-2
[1]: http://stackoverflow.com/questions/2054939/is-char-signed-or-unsigned-by-default#2054941
|
|
|
|
When the user hits left/right to change image, the time left until the
slideshow changes images is reset. If the user changes image by closing
the current image, the timer is not reset. This patch resolves that.
|
|
It is actually a trivial task for strtoul + some bit shifting, so there is no
need for two separate functions.
|
|
This prevents imv from trying to "catch up" on the time that it was
asleep for by playing the gif back at high speed.
|
|
|
|
In case of error return non-zero value instead of cleaning up navigator. This
way main loop may do some more cleanup, or maybe even act differently.
|
|
Set "last_time" to current time at declaration time, so that it holds at least
something by the time it is used.
|
|
This allows to drop extra printing steps and memory allocations.
|
|
This change effectively backs out f1737ddd06141afbe99f37af3b5c2d0f1df5fe7a,
implementing the same functionality in a simpler and more correct way.
Implementation details:
* imv_navigator.wrapped - a new field that has value "0" by default; once
navigator wraps around the list, this field recieves value "1".
* imv_navigator_wrapped(&nav) - a new function that returns non-zero value iff
navigator wrapped around the list. Currently just returns value of
imv_navigator.wrapped.
While at it, expanded "test_navigator_remove" and merged it with
"test_navigator_add". Resulting test is called "test_navigator_add_remove".
Fixes #94.
|
|
|
|
|
|
For the following actions:
* reset scaling ('s'),
* redraw ('r'),
* scale to actual size ('a'),
* center image ('c'),
* remove selection ('x'),
* toggle fullscreen ('f'),
* toggle playing (space),
* print selection ('p'),
* toggle overlay ('d')
repeating action when key is held does not make sense. After acting upon these
events ignore them until key is released or another key is pressed.
|
|
Key handling code obuses the fact that plus sign is shifted key for equals sign
on US keyboard. Add '+' as a control for layouts where this is not the case.
|
|
|
|
This reduces delay before initial draw in case of slow input, opening
possibilities for use cases like:
$ curl -Osw "%{filename_effective}\n" "http://www.example.com/[1-10].jpg"
which will download all images and start showing them once first arrives.
|
|
|
|
|
|
* Add new switches: "-S" to force (default) "perfect fit" mode and "-s" to force
"best fit" mode.
* Add new control key: "s" to switch scaling mode.
|
|
|
|
|
|
This commit changes processing of arguments:
* When called without arguments (with or without flags), imv reads list of files
from standard input.
* When called with "-" among arguments, read image data from standard input.
|