aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Improve the workaround for native GdkWindowsPřemysl Eric Janouch2022-07-171-1/+1
| | | | | Overshooting caused the image to be one pixel taller/wider, due to using ceil() within get_display_dimensions().
* Work around a mysterious no-image zoom issuePřemysl Eric Janouch2022-07-171-2/+8
|
* Center zoom around pointer or middle of the viewPřemysl Eric Janouch2022-07-171-16/+53
|
* Let FivView take care of its drag gesturePřemysl Eric Janouch2022-07-172-77/+79
| | | | Making the GtkScrolledWindow's scrollbars draggable again.
* Implement GtkScrollable in FivViewPřemysl Eric Janouch2022-07-172-33/+147
| | | | | This fixes rendering and positioning behaviour when dragging on X11, where we aim to use a native GdkWindow.
* Simplify view dragging code a bitPřemysl Eric Janouch2022-07-161-26/+16
|
* Support dragging the viewPřemysl Eric Janouch2022-07-152-2/+91
| | | | | | | | | It would also be possible to handle this through press/motion/release event handlers, though GtkGestureDrag is more convenient for hacking in support for dragging to widgets not supporting GtkScrollable (yet). There may be some undesired interactions lurking, besides the jarring movements when dragging native GdkWindows (these are a pain).
* Make the browser scroll with touchpad on WaylandPřemysl Eric Janouch2022-07-152-3/+37
| | | | And generally clear up scroll handling.
* Discard the inner sidebar's size requestPřemysl Eric Janouch2022-07-141-1/+6
| | | | | It used to create a hole when there weren't enough bookmarks to fill that space.
* Use GPatternSpec rather than fnmatch()Přemysl Eric Janouch2022-07-141-12/+24
| | | | | Fixing a portability issue on Windows, where we still aim to use the shared-mime-info database.
* Add a context menu to breadcrumbsPřemysl Eric Janouch2022-07-041-2/+34
|
* Move the browser's popup menu to its own filePřemysl Eric Janouch2022-07-044-183/+222
|
* Decode bitmap thumbnails through LibRaw as wellPřemysl Eric Janouch2022-06-101-1/+72
|
* Generate TIFF structs/enums from a text filePřemysl Eric Janouch2022-06-104-504/+531
| | | | This is to make the tables much easier to maintain.
* Build tools with Meson as wellPřemysl Eric Janouch2022-06-105-21/+17
|
* Downscale embedded thumbnails within minionsPřemysl Eric Janouch2022-06-083-67/+76
| | | | Otherwise the UI would become unresponsive during loading.
* Employ embedded thumbnail extractionPřemysl Eric Janouch2022-06-081-12/+39
| | | | | | | | | | | | And store all direct thumbnailer output in the browser's cache-- low-quality thumbnails will always be regenerated, as is desired, and we'll reload faster on devices where we don't store thumbnails. This change improves latency at the cost of overall efficiency, seeing as images with thumbnails will be spent cycles on twice. Keeping this out-of-process avoids undesired lock-ups. Moreover, embedded thumbnails can be fairly expensive to decode.
* Add a command line option to extract thumbnailsPřemysl Eric Janouch2022-06-084-71/+161
| | | | | Only use LibRaw for now, which probably has the most impact using the least amount of effort.
* Add flags to the serialization protocolPřemysl Eric Janouch2022-06-083-6/+11
| | | | | | | | | It still needs no versioning, as it's not really used by anyone. An alternative method of passing a "low-quality" flag would be perusing fiv_thumbnail_key_lq from fiv-thumbnail.c, which would create a circular dependency, unless fiv_io_{de,}serialize*() were moved to fiv-thumbnail.c.
* Clean upPřemysl Eric Janouch2022-06-0510-48/+48
| | | | Use gchar when memory is allocated through GLib.
* Get rid of our spng dependencyPřemysl Eric Janouch2022-06-046-140/+189
| | | | Thumbnails can be properly loaded using Wuffs now.
* Bump Wuffs, support partial PNGs through itPřemysl Eric Janouch2022-06-043-11/+12
|
* Cache thumbnails across reloadsPřemysl Eric Janouch2022-06-041-7/+34
| | | | | | | | | This will speed up sort changes, as well as simple reloads, at the cost of an extra hash map from URIs to Cairo surface references. It seems unnecessary to provide an explicit option to flush this cache, as it may be cleared by changing either the directory or the current thumbnail size.
* Attach mtime to the browser's rescaled thumbnailsPřemysl Eric Janouch2022-06-041-1/+14
|
* Use the model's mtime for validating thumbnailsPřemysl Eric Janouch2022-06-044-21/+15
| | | | | Saves a syscall, generalizes fiv_thumbnail_lookup(), wastes a tiny bit of memory per entry.
* Expose the mtime of the model's entriesPřemysl Eric Janouch2022-06-045-41/+42
|
* Plug two memory leaksPřemysl Eric Janouch2022-06-042-6/+6
|
* Fix sort changes taking way too much timePřemysl Eric Janouch2022-06-021-2/+8
| | | | | | All thumbnails were reloaded five times on each change. GTK+/GObject's behaviour doesn't make a lot of sense, but such is life.
* Bump spng wrapPřemysl Eric Janouch2022-04-201-4/+4
|
* Fix loading huge JPEGsPřemysl Eric Janouch2022-03-092-0/+31
| | | | | | | | They fell back to gdk-pixbuf, then misrendered in the thumbnailer, and crashed the program when loaded directly. The second best we can do is scale them down, right after tiling, which is a complex feature to add.
* Prevent thumbnailing from disrupting mouse clicksPřemysl Eric Janouch2022-02-241-9/+9
|
* Turn the browser into a DnD sourcePřemysl Eric Janouch2022-02-221-14/+99
| | | | | | The destination does all the work of handling file operations. Also, add some missing logic for horizontal scrolling.
* Use the X-GNOME-FullName desktop file keyPřemysl Eric Janouch2022-02-213-2/+5
|
* Avoid g_app_info_should_show() in context menusPřemysl Eric Janouch2022-02-211-4/+2
| | | | We were hiding our own JPEG cropper.
* Clean upPřemysl Eric Janouch2022-02-211-13/+8
|
* Try to thumbnail everything we canPřemysl Eric Janouch2022-02-211-25/+75
|
* Clean upPřemysl Eric Janouch2022-02-201-3/+3
|
* Make thumbnailers pass back raw imagesPřemysl Eric Janouch2022-02-206-36/+137
|
* Implement wide thumbnail cache invalidationPřemysl Eric Janouch2022-02-204-4/+198
|
* Use natural sort orderPřemysl Eric Janouch2022-02-201-12/+9
| | | | This is exposed in GLib through collate key construction.
* Show application icons in context menu itemsPřemysl Eric Janouch2022-02-201-2/+20
|
* Simplify sidebar DnDPřemysl Eric Janouch2022-02-191-4/+1
|
* fiv-jpegcrop: avoid negatively sized crop regionsPřemysl Eric Janouch2022-02-191-4/+5
|
* Don't mention gdk-pixbuf as a direct dependencyPřemysl Eric Janouch2022-02-192-2/+2
| | | | It's a similar case to Cairo.
* Add a lossless JPEG cropperPřemysl Eric Janouch2022-02-194-1/+443
| | | | This is more of an MVP, as metadata probably need adjustments.
* Add a TODO commentPřemysl Eric Janouch2022-02-181-0/+1
| | | | WebP can't save all JPEGs, because WEBP_MAX_DIMENSION is only 16383.
* Make the view a drop targetPřemysl Eric Janouch2022-02-171-0/+24
|
* Add a missing header file includePřemysl Eric Janouch2022-02-141-2/+3
|
* Open items on mouse button release, not pressPřemysl Eric Janouch2022-02-141-25/+31
| | | | | | | | At least the left and middle mouse buttons seem to behave similarly in other programs and systems. Context menus are opened on button release on Windows and with some GTK+ widgets (popovers in GtkPlacesSidebar).
* Scroll to selection when returning from the viewerPřemysl Eric Janouch2022-02-131-2/+15
|