gtk4.git
4 years agomacos: Actually set the vfuncs
Benjamin Otte [Fri, 24 Sep 2021 20:11:22 +0000 (22:11 +0200)]
macos: Actually set the vfuncs

4 years agoMerge branch 'wip/otte/shittymorph' into 'master'
Benjamin Otte [Fri, 24 Sep 2021 08:50:17 +0000 (08:50 +0000)]
Merge branch 'wip/otte/shittymorph' into 'master'

gdk: Make sure only one GL backend is used

See merge request GNOME/gtk!3992

4 years agogdk: Make sure only one GL backend is used
Benjamin Otte [Thu, 23 Sep 2021 23:47:03 +0000 (01:47 +0200)]
gdk: Make sure only one GL backend is used

Creative people managed to create an X11 display and a Wayland display
at once, thereby getting EGL and GLX involved in a fight to the death
over the ownership of the glFoo() symbolspace.

A way to force such a fight with available tools here is (on Wayland)
running something like:
GTK_INSPECTOR_DISPLAY=:1 GTK_DEBUG=interactive gtk4-demo

Related: xdg-desktop-portal-gnome#5

4 years agoMerge branch 'master' into 'master'
Matthias Clasen [Wed, 22 Sep 2021 23:03:18 +0000 (23:03 +0000)]
Merge branch 'master' into 'master'

gtktextview: Fixed arrow key crash.

Closes #4275

See merge request GNOME/gtk!3984

4 years agoMerge branch 'widgetfactory-async-load' into 'master'
Matthias Clasen [Wed, 22 Sep 2021 21:49:15 +0000 (21:49 +0000)]
Merge branch 'widgetfactory-async-load' into 'master'

Revert "Use GtkLoader for image loading"

See merge request GNOME/gtk!3986

4 years agoAdd GtkLoader to gtk4-widget-factory
Matthias Clasen [Wed, 22 Sep 2021 03:04:33 +0000 (23:04 -0400)]
Add GtkLoader to gtk4-widget-factory

Add an async-loading paintable implementation
to gtk4-widget-factory, and use it to load the
jpegs in the background.

4 years agotexture: Document constructors as threadsafe
Matthias Clasen [Wed, 22 Sep 2021 03:08:09 +0000 (23:08 -0400)]
texture: Document constructors as threadsafe

We aren't providing async loading apis here,
but we want to allow applications to create
textures in a thread, to avoid blocking the
main thread.

4 years agoRevert "Add delayed loading for textures"
Matthias Clasen [Wed, 22 Sep 2021 03:09:40 +0000 (23:09 -0400)]
Revert "Add delayed loading for textures"

This reverts commit 4a89cfe2c938512c4580d3697cc08a64e41f5f36.

4 years agoRevert "Use GtkLoader for image loading"
Matthias Clasen [Wed, 22 Sep 2021 03:09:31 +0000 (23:09 -0400)]
Revert "Use GtkLoader for image loading"

This reverts commit da115ad07504d2f10dec93c37d98e1d6fd4b095d.

4 years agoMerge branch 'composetable/accept-long-replacements' into 'master'
Matthias Clasen [Tue, 21 Sep 2021 17:37:06 +0000 (17:37 +0000)]
Merge branch 'composetable/accept-long-replacements' into 'master'

gtkcomposetable: Accept long replacement strings

Closes #4273

See merge request GNOME/gtk!3983

4 years agogtktextview: Fixed arrow key crash.
Jordan Yelloz [Tue, 21 Sep 2021 15:47:32 +0000 (08:47 -0700)]
gtktextview: Fixed arrow key crash.

When pressing the keyboard arrows to move around when the insertion point is
hidden, it causes an assertion error in blink_cb.

Insertion point blinks should only be scheduled when blinking is enabled and the
insertion point is visible.

Closes #4275

4 years agogtkcomposetable: Accept long replacement strings
Martin Kühl [Tue, 21 Sep 2021 14:56:47 +0000 (16:56 +0200)]
gtkcomposetable: Accept long replacement strings

This change removes the assertions limiting replacement strings in the compose table to be less than 20 characters.
The limit seems arbitrary, is not required, will break some users' setups, and problems with it result in applications not launching.

Fixes #4273

4 years agoMerge branch 'wip/otte/titlebar' into 'master'
Benjamin Otte [Tue, 21 Sep 2021 03:08:46 +0000 (03:08 +0000)]
Merge branch 'wip/otte/titlebar' into 'master'

window: Add a titlebar property

See merge request GNOME/gtk!3982

4 years agoreftests: Add tests that check default-size is computed correctly
Benjamin Otte [Mon, 20 Sep 2021 22:59:36 +0000 (00:59 +0200)]
reftests: Add tests that check default-size is computed correctly

Related: #4136

4 years agowindow: Add a titlebar property
Benjamin Otte [Tue, 21 Sep 2021 02:33:52 +0000 (04:33 +0200)]
window: Add a titlebar property

It just turns get/set_titlebar into a property.

4 years agowindow: Make priv->titlebar the titlebar
Benjamin Otte [Tue, 21 Sep 2021 01:48:42 +0000 (03:48 +0200)]
window: Make priv->titlebar the titlebar

It was priv->title_box before - unless priv->titlebar wasn't NULL, then
it was NULL.

Confusing? Yeah, that's why I changed it.

4 years agowindow: Improve set_titlebar() function
Benjamin Otte [Tue, 21 Sep 2021 01:39:19 +0000 (03:39 +0200)]
window: Improve set_titlebar() function

Get rid of a goto and check if the titlebar is already set.

4 years agoMerge branch 'mention_a11y_concern' into 'master'
Matthias Clasen [Mon, 20 Sep 2021 12:15:44 +0000 (12:15 +0000)]
Merge branch 'mention_a11y_concern' into 'master'

Mention that after setting a button child the user is responsible for a11y relations

See merge request GNOME/gtk!3981

4 years agoMention that after setting a button child the user is responsible for a11y relations
Lukáš Tyrychtr [Mon, 20 Sep 2021 08:52:16 +0000 (10:52 +0200)]
Mention that after setting a button child the user is responsible for a11y relations

4 years agoMerge branch 'wip/otte/for-master' into 'master'
Benjamin Otte [Mon, 20 Sep 2021 05:38:27 +0000 (05:38 +0000)]
Merge branch 'wip/otte/for-master' into 'master'

cssprovider: Be clearer about warnings vs errors

See merge request GNOME/gtk!3980

4 years agowayland: Add format hex value to debug print
Benjamin Otte [Mon, 20 Sep 2021 05:04:20 +0000 (07:04 +0200)]
wayland: Add format hex value to debug print

It's how it's listed in the spec, this makes it easier to search.

4 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Mon, 20 Sep 2021 04:29:54 +0000 (04:29 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

builder: Drop unused part of private api

See merge request GNOME/gtk!3979

4 years agowindow: Drop some dead code
Matthias Clasen [Mon, 20 Sep 2021 04:01:24 +0000 (00:01 -0400)]
window: Drop some dead code

The gtk_window_set_buildable_property implementation
was only used to set the unused builder_visible flag.
Remove both the flag and the vfunc.

This means we no longer have any set_buildable_property
implementations and could eventually drop that vfunc and
the support for it in GtkBuilder.

4 years agocssprovider: Be clearer about warnings vs errors
Benjamin Otte [Mon, 20 Sep 2021 03:57:14 +0000 (05:57 +0200)]
cssprovider: Be clearer about warnings vs errors

The CSS parser tried to warn about unexpected syntax that the spec
doesn't define as an error.

4 years agobuilder: Cosmetics
Matthias Clasen [Mon, 20 Sep 2021 03:54:38 +0000 (23:54 -0400)]
builder: Cosmetics

4 years agobuilder: Small optimization
Matthias Clasen [Mon, 20 Sep 2021 02:30:34 +0000 (22:30 -0400)]
builder: Small optimization

Use g_object_setv where we can.

It would be much nicer if we could pass the
pspecs we already have, and avoid having GObject
look them up again.

4 years agobuilder: Avoid a pointless call
Matthias Clasen [Mon, 20 Sep 2021 02:13:00 +0000 (22:13 -0400)]
builder: Avoid a pointless call

pspec->name is guaranteed to be interned already.

4 years agobuilder: Drop unused part of private api
Matthias Clasen [Mon, 20 Sep 2021 01:56:43 +0000 (21:56 -0400)]
builder: Drop unused part of private api

The aliases arguments was used to support 'primary',
but we no longer have that, and all callers pass
NULL for aliases. So, just drop it.

4 years agoUpdate Turkish translation
Emin Tufan Çetin [Sun, 19 Sep 2021 17:22:22 +0000 (17:22 +0000)]
Update Turkish translation

4 years agoUpdate Turkish translation
Emin Tufan Çetin [Sun, 19 Sep 2021 17:18:57 +0000 (17:18 +0000)]
Update Turkish translation

4 years agoMerge branch 'resource-cleanup' into 'master'
Matthias Clasen [Sun, 19 Sep 2021 12:53:59 +0000 (12:53 +0000)]
Merge branch 'resource-cleanup' into 'master'

Clean up gesture icons

See merge request GNOME/gtk!3978

4 years agoresources: Treat svgs as xml
Matthias Clasen [Sun, 19 Sep 2021 12:26:14 +0000 (08:26 -0400)]
resources: Treat svgs as xml

They can have their whitespace removed just the same.

4 years agoClean up gesture icons
Matthias Clasen [Sun, 19 Sep 2021 12:13:46 +0000 (08:13 -0400)]
Clean up gesture icons

These had duplicate drawing in them, and were
saved with all the extra Inkscape data.

4 years agoMerge branch 'delayed-loading' into 'master'
Matthias Clasen [Sat, 18 Sep 2021 23:02:00 +0000 (23:02 +0000)]
Merge branch 'delayed-loading' into 'master'

gtk-demo: Cosmetics

See merge request GNOME/gtk!3975

4 years agoUse GtkLoader for image loading
Matthias Clasen [Sat, 18 Sep 2021 18:13:22 +0000 (14:13 -0400)]
Use GtkLoader for image loading

This avoids blocking on image loading while
we have better things to do.

4 years agoAdd delayed loading for textures
Matthias Clasen [Sat, 18 Sep 2021 17:25:47 +0000 (13:25 -0400)]
Add delayed loading for textures

Add a private GdkPaintable implementation that
loads a texture in a thread, and does not show
anything until the texture is loaded. This avoid
blocking on image loading in the main thread.

4 years agoloaders: Add profiler marks
Matthias Clasen [Sat, 18 Sep 2021 18:12:39 +0000 (14:12 -0400)]
loaders: Add profiler marks

These are potentially expensive calls, we
should make sure they show up in profiles.

4 years agoUpdate Catalan translation
Jordi Mas [Sat, 18 Sep 2021 19:15:31 +0000 (21:15 +0200)]
Update Catalan translation

4 years agobuilder: Cosmetics
Matthias Clasen [Sat, 18 Sep 2021 16:04:40 +0000 (12:04 -0400)]
builder: Cosmetics

4 years agogtk-demo: Cosmetics
Matthias Clasen [Sat, 18 Sep 2021 15:07:09 +0000 (11:07 -0400)]
gtk-demo: Cosmetics

Tweak the color of the outlines in the font rendering
demo.

4 years agoMerge branch 'wip/baedert/for-master' into 'master'
Matthias Clasen [Sat, 18 Sep 2021 15:04:09 +0000 (15:04 +0000)]
Merge branch 'wip/baedert/for-master' into 'master'

label: Remove redundant store

Closes #4196

See merge request GNOME/gtk!3891

4 years agowidget factory: Scale down jpeg images
Timm Bäder [Sat, 18 Sep 2021 14:48:48 +0000 (16:48 +0200)]
widget factory: Scale down jpeg images

4 years agoUpdate POTFILES.in
Piotr Drąg [Sat, 18 Sep 2021 11:12:42 +0000 (13:12 +0200)]
Update POTFILES.in

4 years agocssimageurl: Explicitly check for local_error != NULL
Timm Bäder [Sat, 18 Sep 2021 11:08:46 +0000 (13:08 +0200)]
cssimageurl: Explicitly check for local_error != NULL

This should always be the case since gdk_texture_new_from_file should
always set the error when it returns NULL, but make it explicit anyway.

4 years agoconstraintsolver: Remove a dead assignment
Timm Bäder [Sat, 18 Sep 2021 10:53:41 +0000 (12:53 +0200)]
constraintsolver: Remove a dead assignment

4 years agogdktiff: Use guint32 instead of int32
Timm Bäder [Sat, 18 Sep 2021 07:00:16 +0000 (09:00 +0200)]
gdktiff: Use guint32 instead of int32

The latter seems to be deprecated.

4 years agoMerge branch 'transform-work' into 'master'
Matthias Clasen [Sat, 18 Sep 2021 06:35:08 +0000 (06:35 +0000)]
Merge branch 'transform-work' into 'master'

transform: Add sections

See merge request GNOME/gtk!3974

4 years agowindow: Fix mnemonics-visible getter+setter annotations
Timm Bäder [Sat, 11 Sep 2021 11:32:33 +0000 (13:32 +0200)]
window: Fix mnemonics-visible getter+setter annotations

4 years agostackswitcher: Expand child buttons
Timm Bäder [Fri, 27 Aug 2021 14:37:37 +0000 (16:37 +0200)]
stackswitcher: Expand child buttons

Fixes #4196

4 years agoinspector: Cache if we have ever constructed a window
Timm Bäder [Sat, 7 Aug 2021 09:58:46 +0000 (11:58 +0200)]
inspector: Cache if we have ever constructed a window

Silly optimization to get rid of

gtk_main_do_event
  gtk_inspector_handle_event
    gtk_inspector_window_get_for_display
      g_object_get_data

showing up in profiles even though it's useless since we've never even
created any inspector window in the first place.

4 years agoAdd gsk_transform_to_2d_components
Matthias Clasen [Sat, 18 Sep 2021 06:06:00 +0000 (02:06 -0400)]
Add gsk_transform_to_2d_components

This function decomposes a general 2D transform
into skew, scale, rotation and translation.

Tests included.

4 years agoMerge branch 'gbsneto/fix-filechooserwidget-choices' into 'master'
Matthias Clasen [Sat, 18 Sep 2021 03:59:52 +0000 (03:59 +0000)]
Merge branch 'gbsneto/fix-filechooserwidget-choices' into 'master'

File chooser choice fixes

See merge request GNOME/gtk!3973

4 years agofilechooserwidget: Return an id in get_choice()
Georges Basile Stavracas Neto [Sat, 18 Sep 2021 03:17:36 +0000 (00:17 -0300)]
filechooserwidget: Return an id in get_choice()

gtk_file_chooser_widget_get_choice() is supposed to return the option
id of the choice, but it currently is returning the option label.

Return the option id instead.

4 years agofilechooserwidget: Match choice id from "options"
Georges Basile Stavracas Neto [Sat, 18 Sep 2021 03:14:55 +0000 (00:14 -0300)]
filechooserwidget: Match choice id from "options"

When choices are added to the file chooser widget, the options of
that choice are stored object data under the "options" key. However,
gtk_file_chooser_widget_set_choice() was checking for "choices".

Retrieve the options from the "options" key stored data object data.

4 years agoAdd more transform tests
Matthias Clasen [Sat, 18 Sep 2021 02:37:08 +0000 (22:37 -0400)]
Add more transform tests

Test gsk_transform_to_2d.

4 years agoMerge branch 'static-analysis-fixes' into 'master'
Matthias Clasen [Sat, 18 Sep 2021 02:22:21 +0000 (02:22 +0000)]
Merge branch 'static-analysis-fixes' into 'master'

label: Remove a dead assignment

See merge request GNOME/gtk!3972

4 years agogsk: Add skew transforms
Matthias Clasen [Sat, 18 Sep 2021 02:01:55 +0000 (22:01 -0400)]
gsk: Add skew transforms

Add gsk_transform_skew() to make our transform
api more complete wrt to what you would expect
for a graphics api.

4 years agotransform: Add sections
Matthias Clasen [Sat, 18 Sep 2021 00:51:47 +0000 (20:51 -0400)]
transform: Add sections

This makes the code easier to navigate (for me).

4 years agotextview: Remove a dead store
Matthias Clasen [Sat, 18 Sep 2021 02:05:22 +0000 (22:05 -0400)]
textview: Remove a dead store

Pointed out by clang.

4 years agolistitemmanager: Add a few assertions
Matthias Clasen [Sat, 18 Sep 2021 02:03:56 +0000 (22:03 -0400)]
listitemmanager: Add a few assertions

This might help poor static analyzers.

4 years agoMerge branch 'more-glyph-drawing-fixes' into 'master'
Matthias Clasen [Sat, 18 Sep 2021 00:26:14 +0000 (00:26 +0000)]
Merge branch 'more-glyph-drawing-fixes' into 'master'

ngl: Use exact device scales for glyphs

See merge request GNOME/gtk!3971

4 years agoimcontextsimple: Rewrite a function slightly
Matthias Clasen [Sat, 18 Sep 2021 00:02:12 +0000 (20:02 -0400)]
imcontextsimple: Rewrite a function slightly

This hopefully avoids upsetting static analyis.

4 years agolabel: Remove a dead assignment
Matthias Clasen [Fri, 17 Sep 2021 23:53:00 +0000 (19:53 -0400)]
label: Remove a dead assignment

It may have quieted gcc at some point, but
it upsets clang nowadays. Remove it.

4 years agoMerge branch 'glyph-clipping-fixes' into 'master'
Matthias Clasen [Fri, 17 Sep 2021 23:31:41 +0000 (23:31 +0000)]
Merge branch 'glyph-clipping-fixes' into 'master'

gtk-demo: Improve ink extents rendering

See merge request GNOME/gtk!3969

4 years agoRevert "gsk: Stop enlarging text bounding boxes"
Matthias Clasen [Fri, 17 Sep 2021 23:11:06 +0000 (19:11 -0400)]
Revert "gsk: Stop enlarging text bounding boxes"

This reverts commit 87af45403ace1047b91ddbab98d9d5a5e15b84eb.

I've found that this change is needed to ensure that the
bounding boxes of text nodes encompass all the glyphd drawing.
Without it, we overdraw the widget boundaries and cut off
glyphs.

4 years agongl: Use exact device scales for glyphs
Matthias Clasen [Fri, 17 Sep 2021 23:07:55 +0000 (19:07 -0400)]
ngl: Use exact device scales for glyphs

We are rendering the glyphs on a larger surface,
and we should avoid introducing unnecessary
rounding errors here. Also, I've found that
we always need to enlarge the surface by one
pixels in each direction to avoid cutting off
the tops of large glyphs.

4 years agogtk-demo: Improve ink extents rendering
Matthias Clasen [Fri, 17 Sep 2021 20:07:51 +0000 (16:07 -0400)]
gtk-demo: Improve ink extents rendering

Show the pixel-aligned ink rectangle, so we can
see that it includes all the pixels that are inked.

4 years agogtk-demo: Fix non-circular buttons
Matthias Clasen [Fri, 17 Sep 2021 19:24:26 +0000 (15:24 -0400)]
gtk-demo: Fix non-circular buttons

4 years agoMerge branch 'glyph-clipping-fixes' into 'master'
Matthias Clasen [Fri, 17 Sep 2021 18:35:41 +0000 (18:35 +0000)]
Merge branch 'glyph-clipping-fixes' into 'master'

gsk: Stop enlarging text bounding boxes

See merge request GNOME/gtk!3968

4 years agoMerge branch 'wip/otte/for-master' into 'master'
Matthias Clasen [Fri, 17 Sep 2021 18:06:30 +0000 (18:06 +0000)]
Merge branch 'wip/otte/for-master' into 'master'

icontheme: Fix variable mixup leading to crashes

Closes #4269

See merge request GNOME/gtk!3967

4 years agoicontheme: Fix variable mixup leading to crashes
Benjamin Otte [Fri, 17 Sep 2021 16:51:59 +0000 (18:51 +0200)]
icontheme: Fix variable mixup leading to crashes

Note: Don't have 2 variables named "icon" and "gicon", you will screw
them up.

reftests included.

Fixes #4269

4 years agoFix glyph cache entry sizing
Matthias Clasen [Fri, 17 Sep 2021 17:17:53 +0000 (13:17 -0400)]
Fix glyph cache entry sizing

The subpixel-positioned glyph extends on both sides.

4 years agoMerge branch 'menu_button_a11y_improvements' into 'master'
Matthias Clasen [Fri, 17 Sep 2021 16:51:52 +0000 (16:51 +0000)]
Merge branch 'menu_button_a11y_improvements' into 'master'

Set correct accessible relations for GtkMenuButton

Closes #4254

See merge request GNOME/gtk!3950

4 years agogsk: Stop enlarging text bounding boxes
Matthias Clasen [Fri, 17 Sep 2021 16:37:36 +0000 (12:37 -0400)]
gsk: Stop enlarging text bounding boxes

This should not be necessary and only serves
to make the actual bugs harder to find.

4 years agoApply 4 suggestion(s) to 1 file(s)
Emmanuele Bassi [Fri, 17 Sep 2021 16:26:00 +0000 (16:26 +0000)]
Apply 4 suggestion(s) to 1 file(s)

4 years agoMerge branch 'matthiasc/for-master' into 'master'
Matthias Clasen [Fri, 17 Sep 2021 16:22:04 +0000 (16:22 +0000)]
Merge branch 'matthiasc/for-master' into 'master'

gsk: Add a test for transform_bounds

See merge request GNOME/gtk!3966

4 years agotestsuite: Run the clipboard test in isolation
Matthias Clasen [Fri, 17 Sep 2021 15:24:54 +0000 (11:24 -0400)]
testsuite: Run the clipboard test in isolation

We can't have other test pop up windows, and possibly
stealing focus and preventing us from getting data
offers. So, run the clipboard test in isolation.

4 years agotransform: Improve docs
Matthias Clasen [Fri, 17 Sep 2021 13:57:07 +0000 (09:57 -0400)]
transform: Improve docs

Add an example for reconstructing transforms.

4 years agogsk: Handle 2D transforms better
Matthias Clasen [Fri, 17 Sep 2021 13:42:20 +0000 (09:42 -0400)]
gsk: Handle 2D transforms better

For 2D transforms, we can read the scale
factors more directly off the matrix.

This should eventually be moved out into a
function to decompose a 2D transform into
scale + rotation + skew + translation.

4 years agonode editor: Preserve aspect ratio
Matthias Clasen [Fri, 17 Sep 2021 13:29:55 +0000 (09:29 -0400)]
node editor: Preserve aspect ratio

We don't want to distort our rendering.
Tell the paintable to keep the aspect
ratio.

4 years agorendernodepaintable: Provide accurate aspect ratio
Matthias Clasen [Fri, 17 Sep 2021 13:28:12 +0000 (09:28 -0400)]
rendernodepaintable: Provide accurate aspect ratio

Since we report width and height as integers, the
default implementation of this introduces rounding
errors. This shows up in the node-editor, as having
uneven scale factors like sx=1.0 and sy=1.0035.
Text nodes don't handle uneven scales like that well
and overdraw.

4 years agoDelete unneccessary comment and make other more descriptive
Lukáš Tyrychtr [Fri, 17 Sep 2021 13:11:26 +0000 (15:11 +0200)]
Delete unneccessary comment and make other more descriptive

4 years agogsk: Add a test for transform_bounds
Matthias Clasen [Fri, 17 Sep 2021 11:43:07 +0000 (07:43 -0400)]
gsk: Add a test for transform_bounds

4 years agoMerge branch 'fix-typo' into 'master'
Matthias Clasen [Fri, 17 Sep 2021 10:52:59 +0000 (10:52 +0000)]
Merge branch 'fix-typo' into 'master'

gtkcolorbutton: Fix documentation

See merge request GNOME/gtk!3965

4 years agogtkcolorbutton: Fix documentation
James Westman [Fri, 17 Sep 2021 04:53:42 +0000 (23:53 -0500)]
gtkcolorbutton: Fix documentation

4 years agoMerge branch 'image-loading' into 'master'
Benjamin Otte [Fri, 17 Sep 2021 03:13:38 +0000 (03:13 +0000)]
Merge branch 'image-loading' into 'master'

Image loaders

See merge request GNOME/gtk!3939

4 years agogtk-demo: Use textures in listbox example
Benjamin Otte [Fri, 17 Sep 2021 02:15:40 +0000 (04:15 +0200)]
gtk-demo: Use textures in listbox example

4 years agoexamples: Use textures over pixbufs
Benjamin Otte [Fri, 17 Sep 2021 02:10:56 +0000 (04:10 +0200)]
examples: Use textures over pixbufs

4 years agoicontheme: Implement gtk_icon_theme_lookup_by_gicon() for textures
Benjamin Otte [Fri, 17 Sep 2021 02:07:59 +0000 (04:07 +0200)]
icontheme: Implement gtk_icon_theme_lookup_by_gicon() for textures

More feature parity.

Before this, it would have worked just as well - just going via a PNG
bytes step inbetween.

4 years agotexture: Implement GIcon and GLoadableIcon
Benjamin Otte [Fri, 17 Sep 2021 02:05:40 +0000 (04:05 +0200)]
texture: Implement GIcon and GLoadableIcon

This is mainly for feature parity with GdkPixbuf. And it doesn't hurt
anyone (I hope).

4 years agotexture: Refactor gdk_texture_new_from_bytes()
Benjamin Otte [Fri, 17 Sep 2021 01:42:27 +0000 (03:42 +0200)]
texture: Refactor gdk_texture_new_from_bytes()

1. Split into a real loader and a fake one

2. Only try the fake one if the real one doesn't support the file.

4 years agotexture: Rework error enum
Benjamin Otte [Fri, 17 Sep 2021 01:25:35 +0000 (03:25 +0200)]
texture: Rework error enum

1. Change INSUFFICIENT_MEMORY to TOO_LARGE
   GTK crashes on insufficient memory, we don't emit GErrors.

2. Split UNSUPPORTED into UNSUPPORTED_CONTENT and UNSUPPORTED_FORMAT
   So we know if you need to find an RPM with a loader or curse and
   the weird file.

3. Translate error messages, they are meant for end users.

4 years agopixbufutils: Don't hardcode formats
Benjamin Otte [Fri, 17 Sep 2021 00:34:15 +0000 (02:34 +0200)]
pixbufutils: Don't hardcode formats

Just let the loaders figure out the file format themselves.

4 years agoicontheme: Insist that people provide proper values
Benjamin Otte [Fri, 17 Sep 2021 00:29:59 +0000 (02:29 +0200)]
icontheme: Insist that people provide proper values

Seriously...

4 years agoicontheme: Use textures more
Benjamin Otte [Tue, 14 Sep 2021 16:17:58 +0000 (18:17 +0200)]
icontheme: Use textures more

We were going via GLoadablieIcon/GInputStream for everything previously
and we have no API for that with GdkTexture.

With this commit, gdk-pixbuf isn't used anymore when starting
widget-factory for anything but SVG.

4 years agoicontheme: Load textures directly when possible
Benjamin Otte [Tue, 14 Sep 2021 15:49:40 +0000 (17:49 +0200)]
icontheme: Load textures directly when possible

This doesn't fix the codepaths for SVG (both for recoloring and
resizing) and doesn't handle streams yet.

4 years agoSupport 16bit formats in the png loader
Matthias Clasen [Wed, 15 Sep 2021 04:41:40 +0000 (00:41 -0400)]
Support 16bit formats in the png loader

When loading, convert all >8-bit data to
GDK_MEMORY_R16G16B16A16_PREMULTIPLIED.

When saving, save all 8-bit formats as 8-bit RGBA,
and save all >8-bt formats as 16-bit RGBA.

4 years agocontentdeserializer: Use our on jpeg loader
Matthias Clasen [Tue, 14 Sep 2021 21:46:11 +0000 (17:46 -0400)]
contentdeserializer: Use our on jpeg loader

4 years agoAdd code to save jpegs
Matthias Clasen [Tue, 14 Sep 2021 21:40:29 +0000 (17:40 -0400)]
Add code to save jpegs

4 years agobuilder: Stop using pixbufutils
Matthias Clasen [Tue, 14 Sep 2021 19:17:29 +0000 (15:17 -0400)]
builder: Stop using pixbufutils

We can just use gdk_pixbuf_new_from_resource here.