4131a926f2
Fix the remaining Windows build error
...
Linux has st_mtim (and an st_mtime macro),
macOS has st_mtimespec (and an st_mtime macro),
Windows has just st_mtime.
GFileInfo would be another option, though it seems unnecessary.
2022-07-23 10:39:53 +02:00
4fcc506d84
Update README.adoc
2022-07-22 20:49:54 +02:00
5529727137
Fix thumbnail passing on Windows
...
LF was converted to CR LF, systematically corrupting bitmap data.
2022-07-22 20:49:54 +02:00
e137afa736
Fix a function name conflict on Mingw-w64
...
This could also be resolved through `#define NO_OLDNAMES`,
however the function rather deserved a more precise name.
2022-07-22 18:33:55 +02:00
891420edfd
Handle back/forward mouse buttons on Win32/macOS
...
There is no conflict with X11/Wayland, because 4/5 are the scroll wheel,
which never gets forwarded to button-press-event.
2022-07-22 16:27:43 +02:00
0bfd3ad4ce
Fix touch screen scrolling on sidebar breadcrumbs
...
The drag gesture needs to be disabled there,
because touch drags fail in an unfortunate way.
2022-07-22 15:40:17 +02:00
e03bc36f63
Print errors from launching new instances
2022-07-21 16:27:48 +02:00
d3b34cd482
Only offer horizontal browser scrolling if useful
...
Motivated by small screens.
2022-07-21 16:04:51 +02:00
b067c1948b
Use GDK event handling return value constants
2022-07-21 16:03:36 +02:00
390e21a72d
Fix touch screen drag scrolling in the browser
2022-07-21 15:33:42 +02:00
876fda4f55
Handle the long press gesture on browser items
...
Unfortunately, this doesn't work on X11, though Wayland seems fine.
2022-07-21 12:28:01 +02:00
60b2395940
Mildly improve Windows portability
2022-07-21 09:57:00 +02:00
e7c75f8f9b
Remove forgotten include directive
2022-07-20 17:51:00 +02:00
a9a9d69a92
Add missing array sentinel value
2022-07-19 16:08:53 +02:00
26dead7ea4
Fix the About dialog animation on macOS
2022-07-17 16:05:08 +02:00
94f6938b9a
Add a key binding for keeping the zoom/position
2022-07-17 15:26:20 +02:00
62b1e83541
Support horizontal scrolling in the browser
...
An unlikely situation.
2022-07-17 13:47:56 +02:00
bd2e929b77
Add ability to keep zoom/position when browsing
2022-07-17 13:04:29 +02:00
9a0647fdfd
Improve the workaround for native GdkWindows
...
Overshooting caused the image to be one pixel taller/wider,
due to using ceil() within get_display_dimensions().
2022-07-17 11:45:02 +02:00
47b7600f5e
Work around a mysterious no-image zoom issue
2022-07-17 09:57:28 +02:00
8f98c623ee
Center zoom around pointer or middle of the view
2022-07-17 09:13:12 +02:00
4efda5347c
Let FivView take care of its drag gesture
...
Making the GtkScrolledWindow's scrollbars draggable again.
2022-07-17 07:16:41 +02:00
23429d9631
Implement GtkScrollable in FivView
...
This fixes rendering and positioning behaviour when dragging on X11,
where we aim to use a native GdkWindow.
2022-07-17 05:27:06 +02:00
ca57c2632a
Simplify view dragging code a bit
2022-07-16 14:57:44 +02:00
c55500f51a
Support dragging the view
...
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).
2022-07-15 14:00:31 +02:00
1fee920902
Make the browser scroll with touchpad on Wayland
...
And generally clear up scroll handling.
2022-07-15 07:35:33 +02:00
c6096d05b5
Discard the inner sidebar's size request
...
It used to create a hole when there weren't enough bookmarks
to fill that space.
2022-07-14 12:47:35 +02:00
07aa11d78d
Use GPatternSpec rather than fnmatch()
...
Fixing a portability issue on Windows, where we still aim to use
the shared-mime-info database.
2022-07-14 10:08:15 +02:00
de27dce09c
Add a context menu to breadcrumbs
2022-07-04 20:44:48 +02:00
a1b2225750
Move the browser's popup menu to its own file
2022-07-04 20:44:47 +02:00
b87a109d61
Decode bitmap thumbnails through LibRaw as well
2022-06-10 22:47:00 +02:00
81145064de
Generate TIFF structs/enums from a text file
...
This is to make the tables much easier to maintain.
2022-06-10 02:18:14 +02:00
60a8ee7a80
Build tools with Meson as well
2022-06-10 02:08:56 +02:00
84f8c9436f
Downscale embedded thumbnails within minions
...
Otherwise the UI would become unresponsive during loading.
2022-06-08 02:51:55 +02:00
a8f7532abd
Employ embedded thumbnail extraction
...
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.
2022-06-08 02:51:54 +02:00
8dfbd0dee2
Add a command line option to extract thumbnails
...
Only use LibRaw for now, which probably has the most impact
using the least amount of effort.
2022-06-08 02:51:54 +02:00
930744e165
Add flags to the serialization protocol
...
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.
2022-06-08 02:51:54 +02:00
4ca8825e02
Clean up
...
Use gchar when memory is allocated through GLib.
2022-06-05 13:30:53 +02:00
024b5117b4
Get rid of our spng dependency
...
Thumbnails can be properly loaded using Wuffs now.
2022-06-04 23:14:15 +02:00
ac6b606ccc
Bump Wuffs, support partial PNGs through it
2022-06-04 19:19:16 +02:00
8bba456b14
Cache thumbnails across reloads
...
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.
2022-06-04 16:37:25 +02:00
bb97445a96
Attach mtime to the browser's rescaled thumbnails
2022-06-04 16:37:25 +02:00
e2adac72cc
Use the model's mtime for validating thumbnails
...
Saves a syscall, generalizes fiv_thumbnail_lookup(),
wastes a tiny bit of memory per entry.
2022-06-04 16:37:25 +02:00
3ddb0cf205
Expose the mtime of the model's entries
2022-06-04 14:50:56 +02:00
efc13db66e
Plug two memory leaks
2022-06-04 01:28:44 +02:00
b6315482b7
Fix sort changes taking way too much time
...
All thumbnails were reloaded five times on each change.
GTK+/GObject's behaviour doesn't make a lot of sense, but such is life.
2022-06-02 11:46:16 +02:00
51ea785d83
Bump spng wrap
2022-04-20 03:03:30 +02:00
5c34a6846a
Fix loading huge JPEGs
...
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.
2022-03-09 18:04:36 +01:00
da507edd05
Prevent thumbnailing from disrupting mouse clicks
2022-02-24 21:52:25 +01:00
580b68789b
Turn the browser into a DnD source
...
The destination does all the work of handling file operations.
Also, add some missing logic for horizontal scrolling.
2022-02-22 15:44:38 +01:00