Commit Graph

71 Commits

Author SHA1 Message Date
192ffa0de9 Update a comment 2024-07-27 08:43:56 +02:00
3c8ddcaf26 Fix high-DPI scaling with OpenGL
All checks were successful
Alpine 3.19 Success
Arch Linux Success
Arch Linux AUR Success
Debian Bookworm Success
Fedora 39 Success
OpenBSD 7.3 Success
openSUSE 15.5 Success
We used to render multiple copies (four for a scaling factor of 2).
2024-04-13 05:16:48 +02:00
e57364cd97 Fix openSUSE 15.5 and Win32 builds 2024-04-06 23:56:47 +02:00
91538aaba5 Add an experimental OpenGL renderer 2024-03-13 15:27:31 +01:00
604594a8f1 Prepare for parallelized colour management
This rewrite is more or less necessary for:
 - colour-managed browser thumbnails,
 - asynchronous image loading,
 - turning fiv-io into a reusable library.

Little CMS has a fairly terrible API in this regard.
2024-01-28 01:48:28 +01:00
3c8a280546 Move colour management to its own compilation unit
Also make it apparent that CMM profiles are pointer types.

This isn't all that pretty, but it's a necessary first step.
2024-01-26 19:17:54 +01:00
ee08565389 Resolve spurious overshoot indicators
_gtk_scrolled_window_get_overshoot() decrements the page size
from the upper value before using it for comparisons.
2023-12-28 11:22:17 +01:00
b07fba0c9c Make multi-monitor CM work better with xiccd
Let's assume the profile it picks is appropriate for all monitors.
2023-10-17 15:34:44 +02:00
5ec5f5bdbd Slightly optimize SVG loading 2023-07-09 10:40:32 +02:00
840e7f172c Colour-manage SVGs 2023-07-09 10:40:32 +02:00
4b5b8ec9fa Implement our own Preferences dialog
And fix a resource leak.
2023-06-24 22:13:08 +02:00
2ff853b7e0 Improve looped animation behaviour 2023-06-24 14:36:24 +02:00
074bd4d37f Stop abusing Cairo user data, part 2
With the shift from cairo_surface_t, we've lost our ability
to directly render vector surfaces, but it doesn't matter.
2023-06-24 14:36:24 +02:00
add96b37a6 Stop abusing Cairo user data, part 1
This commit temporarily breaks multi-page images and animations.
2023-06-24 13:56:36 +02:00
44f2f5d4f5 Make the mirror command intuitive 2023-03-25 11:52:33 +01:00
9cdc641b0a Center view rotations/flips 2022-10-03 23:00:16 +02:00
7b88e89489 Allow dragging with the middle mouse button 2022-09-03 16:17:21 +02:00
086dd66aa9 Add the information dialog to context menus
Images don't need to be open for ExifTool to work.

This also enables inspecting unsupported files, such as video.
2022-08-05 11:38:12 +02:00
ca51c9413b Show parse names in Information dialog subtitles 2022-08-05 08:57:55 +02:00
857917aa92 Make file information retrieval asynchronous
Also, make error output scrollable.
2022-08-05 08:03:37 +02:00
bb669743b6 Fix default filenames in the "Save as" dialog
- Don't assume the filesystem is in UTF-8.
 - Don't try to extract basenames directly from URIs.
2022-08-05 04:15:37 +02:00
d590d1da46 Add support for copying to clipboard 2022-08-04 00:35:22 +02:00
d1d9caaa5e Capitalize modifier names, prefer Command on macOS
So far, the macOS special casing is only partial.

Also, GtkShortcutsWindow confusingly labels Command as Meta.
2022-08-04 00:34:05 +02:00
ea75579b33 Fix a crash with empty exiftool stderr output 2022-07-31 03:54:53 +02:00
8437164dec Try a bit harder to get a file's local path 2022-07-31 02:52:20 +02:00
fec64d5595 Support file information for non-local files 2022-07-31 01:14:42 +02:00
fefb4c16ac Support file information for FUSE-mounted paths 2022-07-31 00:12:53 +02:00
dcc5b6c719 Use GSettings for a new native window toggle
Also, redo desktop files handling.
2022-07-25 19:05:27 +02:00
817f1b6000 Support colour management on Windows
There is also an alternative WcsGetDefaultColorProfile() path
that might be necessary on some broken versions of Microsoft Windows,
which I certainly do not want to support.
2022-07-23 22:59:29 +02:00
b067c1948b Use GDK event handling return value constants 2022-07-21 16:03:36 +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
94f6938b9a Add a key binding for keeping the zoom/position 2022-07-17 15:26:20 +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
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
4ca8825e02 Clean up
Use gchar when memory is allocated through GLib.
2022-06-05 13:30:53 +02:00
788485d81e Redirect warnings to the info bar
And speed up thumbnailing of animated images while at it.

Also, fix thumbnailing SVGs with external links.
2022-01-24 05:48:13 +01:00
991e74b99b Redirect image open failure messages
Pop-up dialogs are quite annoying, as is not being able to
iterate over broken images.

This will also be useful for warnings and asynchronous loading.
2022-01-24 02:48:38 +01:00
235b14dc11 Fix a case in orientation mirroring 2022-01-23 04:15:48 +01:00
6ce5c7c2b6 Scale SVGs accurately in the viewing widget 2022-01-23 04:15:48 +01:00
f632510d2a Put reloading the image as its own action 2022-01-12 10:58:33 +01:00
25dcc3b136 Handle view bindings through an action signal
This makes them adjustable.
2022-01-09 07:48:44 +01:00
6a878fd3c4 Bump more copyright years 2022-01-07 09:53:58 +01:00
3274b64f5a Fix SVG thumbnailing
They're not loaded as image surfaces.
2022-01-07 09:43:28 +01:00
685defa684 Rename the whole project shorter
There is no point in claiming speed, it turns out to be a strange focus
to have, considering the amount of available innovations to make.

The new name does not appear to be taken by anything important.
2022-01-05 04:45:46 +01:00