aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-05Make freeimage backend have preceedence over libjpegIvan Oleynikov
The current implementation of freeimage backend automatically rotates the images based on EXIF info. Libjpeg backed doesn't do that (although libjpeg itself may be able to, I didn't check). This commit makes Imv use freeimage for jpeg files when both backends are available to enable automatic image rotation when possible. A cleaner solution could be to add automatic rotaiton functionality to libjpeg backend as well, but this quick hack is better than nothing ☺
2021-07-29Fix lack of X11 window deletion event handlingkat witch
2021-07-29WIP: Use set_size instead of set_absolute_size for fontIvan Oleynikov
This seems to have a better behavior, this way, the fonts in Imv seem to have the same size as the fonts in other programs (Sway, Waybar) when configured in the same way.
2021-07-29Scale fonts when Wayland updates scaling factorIvan Oleynikov
Before this commit, the code in src/wl_window.c seemed to handle the Wayland scaling [1] correctly, it was sending resize events to imv to update the buffer size accordingly. One thing it didn't update is the scaling of fonts that Pango renders on Cairo. This commit simply forwards the scaling factor (computed as [1] requests) together with updated buffer dimentions in resize event, and when the resize event is handled it calls cairo_surface_set_device_scale to notify Pango/Cairo of the scaling. For X11, I simply assume the scaline factor is always 1. This seems to be what the old code did: `grep scale src/x11_window.c` gives no matches. AFAIK, X11 does not have an established way of telling clients what scaling factor to use (and never updates it at runtime). [1]: https://wayland-book.com/surfaces-in-depth/hidpi.html
2021-07-09Also suppress TIFF errors from stdinHarry Jeffery
2021-07-09Fix missing m dependency for imv-msgHarry Jeffery
Fixes #328
2021-07-09Suppress annoying TIFF errorsHarry Jeffery
Fixes #252
2021-07-08Fix image skipping when reading slow filesystemsHarry Jeffery
Fixes #201
2021-07-08Add a contrib-commands optionsomini
This includes the commands available in contrib/. It's enabled by default. I moved the manpage and desktop file to their regular locations to avoid complicating the meson file too much. They won't be installed when you disable the contrib commands.
2021-07-08Move imv-folder files to contribsomini
See #261
2021-07-08Tweak imv-folder file sortingsomini
Make sure to version-sort the files. Requires a non-POSIX `sort`, which should be a mild requirement. See https://github.com/eXeC64/imv/commit/d12470375a33230ffaaea407237125f18f812781#commitcomment-44048679
2021-07-08Fix imv-folder usage with sub-folders with imagessomini
See https://github.com/eXeC64/imv/pull/225#discussion_r494270357
2021-07-08Keep the folder order when using imv-foldersomini
Guaranteed-ish by most shells, see https://unix.stackexchange.com/a/368507. See #229
2021-07-08Include support for imv-foldersomini
This is a wrapper to open all images in a folder. Includes: - Script itself - Man page - Desktop file - Necessary Makefile changes Fix #223
2021-07-08Fix zoom speed dependence on buffer/image widthRonan Dalton
2021-07-08Don't stop listing files in dir when stat failn3f4s
Check errno when stat fail during traversal of a directory: doesn't stop traversing for all stat errors
2021-06-24fix double-free when backend libjpeg is usedmx
2021-04-14Resolve path in imv_navigator_find_path()Aleksander Szczygieł
All items' pathes are resolved in add_item() so path used in imv_navigator_find_path() should be resolved too. This patch fixes #308
2021-04-14List image/heif as a supported mime typeHugo Barrera
`imv` now supports HEIC, but other applications (e.g.: file managers) cannot determine this, since it's not listed as a supported mime type. Adding this entry allows such applications to determine that `imv` can handle HEIC files.
2021-04-14Fallback to 'opengl' when dependency('gl') failsHaelwenn (lanodan) Monnier
This allows for imv to work on a system where libX11 is fully removed
2021-04-14use exponential increments for zoomingPascal Sommer
2021-04-14Include string headerMatthias Coppens
2021-01-09Wayland: Perform display roundtrip after changing scaleHarry Jeffery
Fixes #305
2020-12-17Release v4.2.0Harry Jeffery
2020-12-17Fix first/last image indexing bugHarry Jeffery
Fixes #301
2020-12-17Add include limits.hMatthias Coppens
2020-12-03Add default keybinding for image rotationMark Stosberg
This is the same key binding used by Eye of Gnome for a 90 degree clockwise image rotation for people coming from that image viewer.
2020-12-02wayland: Fix initial black screen due to size of 0x0Scott Moreau
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/blob/master/stable/xdg-shell/xdg-shell.xml#L1037 states regarding xdg_toplevel.configure "The width and height arguments specify a hint to the window". imv was using these dimensions even if they are 0x0, which is valid for the compositor to send. Clearly this is a bad hint and should be ignored. This patch does that, and fixes #293.
2020-12-02Use system inih if availableStephan Lachnit
* inih is now widely available as a system library * if not, a fallback from Wrap DB can be used Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-12-02imv: don't rely on glibc's lack of FILE sync on exit.Érico Rolim
This issue was spotted on musl, where killing imv with the Q shortcut while it was waiting for image paths in stdin led to the application hanging until stdin received an EOF manually with ^D, since the stdin stream was locked by the fgets() function. Switching to pipes and a helper thread allows us to use read() for reading from STDIN_FILENO while still taking advantage of the fgets() logic for handling newlines and buffer size. read() is a thread cancellation point (fgets() is only an optional one), which makes it possible to cancel the helper thread cleanly and force the thread using fgets() to exit when the write-end of the pipe it's reading from is closed.
2020-11-16imv, ipc: improve error checking for ipc creation.Érico Rolim
Since this isn't essential functionality, it's ok to simply not provide it. In cases where XDG_RUNTIME_DIR was empty (but not unset) or set to a directory where the user didn't have write permissions, socket creation would fail and lead to segmentation faults in imv, due to the return value of imv_ipc_create() not being checked.
2020-11-16imv: fix stdin prompt and use fputs.Érico Rolim
Add newline to the prompt for reading paths from stdin. Since string formatting isn't being used, it's possible to use fputs() directly in the logging callback in imv.c.
2020-11-16Document 'crop' scaling modeHarry Jeffery
2020-11-16.builds/ubuntu.yml: fix image name.Érico Rolim
2020-11-16Make tests and man pages optionalSimon Ser
Allows to build imv without these extra features.
2020-08-31Fix bug handling multi-key bindsHarry Jeffery
2020-08-31treewide: fix typosTorstein Husebø
2020-08-31Add missing documentation for overlay_position_bottomHarry Jeffery
2020-08-31colored overlay: config options in man, split rgbaAndreas Stallinger
split color_rgba into color_rgb and alpha added configuration options to man pages cleanup gitignore: the man pages output is now in the build directory, so there is no to ignore man pages individually
2020-08-31colored overlayAndreas Stallinger
* first steps for colored overlay * overlay color wip * add option for overlay position if overlay_positiion_bottom is true overlay is at the bottom * remove enum for overlay position
2020-07-21Support rotate and flip commands on SVGTuomas Siipola
2020-07-21FreeBSD: use librsvg2-rust instead of librsvg2Andreas Stallinger
the library is rewritten in rust and on freebsd there is an other package for it.
2020-07-21Sort directory entries alphabeticallyClownacy
Previously, they would be sorted by however readdir returned them. I suppose a proper configuration option to control sorting would be nice, but for now, I think replacing forced random order with forced alphabetical order is an improvement.
2020-07-21Use private mapping for memfd with keymap.Aleksei Bavshin
mmap with MAP_SHARED would fail if the compositor provides a read-only descriptor with keymap. And at least weston applies F_SEAL_WRITE to the memfd if supported by the platform. Fixes #263
2020-07-21README: Improve build instructionsManuel Zimmermann
The .gitignore file ignores the directory build/, therefore it makes most sense to use this directory in the example as well.
2020-07-21Fix `XVisualInfo` leakTuomas Siipola
It's not documented when this value should be freed but other GLX applications free it here.
2020-07-21Fix X11 window cleanupTuomas Siipola
2020-07-21Fix `keymap` leakTuomas Siipola
2020-07-21Fix librsvg usage to prevent memory leakTuomas Siipola
Calling `rsvg_handle_close` doesn't do anything here because the handle is already constructed with data or file. `g_object_unref` is called instead to free memory.
2020-07-21Add libheif dependency to readmeCarlo Abelli