Commit Graph

77 Commits

Author SHA1 Message Date
11b7969459
Support opaque 16-bit images as RGB30 with Wuffs
Do not check whether the window's visual can make use of them,
since they're arguably rare enough.

With transparent images, we're limited by Cairo's formats.
2021-11-15 14:21:22 +01:00
e835c889a1
Don't use a side buffer to load thumbnails
Undoing part of a recent commit.
2021-11-15 10:30:02 +01:00
6f86911df6
Slightly optimize thumbnail loading
Now it translates to just x86 bswap and ror.
2021-11-15 09:47:00 +01:00
37adaac965
Let modified wheel events scroll the view 2021-11-14 03:37:09 +01:00
1dce2e079c
Fix a typo 2021-11-14 03:37:08 +01:00
c905f64d12
Expose view settings as GObject properties 2021-11-14 02:48:11 +01:00
1f0d6b24d8
Cache the browser's GDK cursor object 2021-11-13 13:40:46 +01:00
7d972e9334
Add scaling to fit, make this the default 2021-11-13 12:47:10 +01:00
b8cc43eb91
Bind the mouse back button on the view 2021-11-13 10:05:05 +01:00
a1db89d91c
Make scaling accessible from the keyboard 2021-11-13 09:51:16 +01:00
73dd5bf1a0
Improve key handling
Iteration should be limited to the view.

g_signal_connect_after() did not work as I hoped it would.
2021-11-13 09:41:37 +01:00
7dba21c6d8
Use the hand/pointer cursor in the browser
Also, fix the build.
2021-11-13 09:21:28 +01:00
d20c6469c0
Clean up 2021-11-13 09:06:01 +01:00
f7c1006053
Actually add gdk-pixbuf to dependencies 2021-11-12 13:42:59 +01:00
f74e7c34d5
Tell wrapped spng to give us a static library 2021-11-12 13:02:57 +01:00
3299cbf825
Parallelize thumbnail loading
GLib makes this easy.

They should all be local, and fast to access, so the CPU is the limit.
2021-11-12 12:22:36 +01:00
972bd80fa5
Add a Meson wrap for spng 2021-11-12 11:49:12 +01:00
21b110a7d6
Use spng to load thumbnails
Speed matters here, and this makes us about 20 percent faster
at loading large directories.

Moreover, libpng's PNG_ALPHA_BROKEN is indeed broken.

Thumbnails have a fairly fixed format, so there are very few practical
corner cases that could have been missed.
2021-11-12 11:45:34 +01:00
afc08df234
Fix GtkWidget::key-press-event callback prototype 2021-11-12 11:45:34 +01:00
062b5757da
Update comments 2021-11-12 11:45:34 +01:00
f341c8f8c3
Make the 1 key reset the zoom 2021-11-11 22:59:31 +01:00
cfd2e5d9a5
README.adoc: fix dependency list 2021-11-11 22:51:59 +01:00
192698b7bd
Add support for defaulting to gdk-pixbuf 2021-11-10 21:34:15 +01:00
405f975899
Use a checkerboard pattern on item background 2021-11-10 21:06:43 +01:00
fc4eb97218
Improve browser item rendition, use CSS
It's not fully hardcoded anymore, and the border is better adjustable.

Item spacing and the fade constant can't be /meaningfully/ put in CSS.
2021-11-10 21:06:43 +01:00
77f0e142c2
Reflect that new list of files changes the layout 2021-11-10 03:20:41 +01:00
e9d0325c62
Add images to the list of recent files 2021-11-10 03:20:41 +01:00
0cda41732f
Add C-n to open a new instance in the directory
Also, improve error messages when opening a file fails.
2021-11-10 03:20:40 +01:00
ffda836a15
Also render SVGs with unspecified dimensions 2021-11-10 01:04:00 +01:00
7ef4a06def
Improve librsvg integration
Let it load external <image>s and not rescale images.
2021-11-10 00:46:19 +01:00
1c5cc50939
Add very basic SVG support
We need to refactor, so that SVGs are pre-rendered on each change
of scaling by librsvg directly, because some elements may be rasterized.

It would be best to also support building against resvg.
2021-11-10 00:23:19 +01:00
1e380f695a
Fix obsolete header includes 2021-11-09 18:15:41 +01:00
ed39a9b434
Add elementary scrolling support to the view 2021-11-09 06:57:02 +01:00
a135d6f332
Enable opening images from the browser
Also, make it possible to go back, in a roughly implemented manner.
2021-11-09 06:03:02 +01:00
a0408abdf2
Don't render rows needlessly 2021-11-09 04:14:19 +01:00
4361fdd1be
Clean up 2021-11-09 03:48:36 +01:00
527a081f54
Add glowing borders around browser items
The styling is mostly hardcoded for now, need to figure it out.
2021-11-09 02:48:40 +01:00
155f57db20
meson.build: fix the io-benchmark target 2021-11-08 17:25:57 +01:00
7d640651cb
Set a default window size 2021-11-08 08:00:48 +01:00
d2ef5c9c95
Pre-layout the browser
Now the widget is scrollable.
2021-11-06 23:56:44 +01:00
a346ff8d02
Don't needlessly call setlocale()
gtk_init_with_args() does it for us.
2021-11-04 20:19:30 +01:00
9045898fb6
Don't rescale thumbnails in sRGB
pixman is too slow at this, maybe do it later, and optionally.
2021-11-04 19:52:14 +01:00
45df774cc9
Fix scaling in the view, as in the browser
The source pattern needs to be padded.
2021-11-04 19:42:22 +01:00
cdb8d852a6
Pre-scale loaded thumbnails, and only when needed 2021-11-03 14:15:34 +01:00
dbc500ae9f
Improve thumbnail scaling and alignment
Stretch thumbnails by up to half a pixel so that they align nicely.

Make use of pixman's sRGB mode.
2021-11-03 14:03:28 +01:00
d6ac386dbd
Bump wuffs
No great differences.
2021-11-02 04:53:33 +01:00
ce0500ef5c
Clean up and fix key handling
Arrow keys now work.
2021-11-01 07:20:25 +01:00
e3b8fc9599
Update README 2021-11-01 05:17:27 +01:00
c8df325c70
Split out xdg.{c,h} 2021-11-01 05:17:26 +01:00
6eecee6b91
Incorporate most clang-format changes 2021-11-01 05:17:26 +01:00