gtk4.git
2 years agovulkan: Turn push constants into an op
Benjamin Otte [Mon, 3 Jul 2023 13:47:53 +0000 (15:47 +0200)]
vulkan: Turn push constants into an op

This removes the last remaining original op from the gskvulkanrenderpass.c,
so that file got some cleanup, too.

2 years agovulkan: Make glyphs use new node ops
Benjamin Otte [Mon, 3 Jul 2023 07:15:04 +0000 (09:15 +0200)]
vulkan: Make glyphs use new node ops

This is a rudimentary - but working - port.
Glyph uploads are still using the old machinery, a bunch of functions
still exist that probably aren't necessary anymore and each glyph emits
its own node.

This will need to be improved in further commits.

2 years agovulkan: Add a glyph shader
Benjamin Otte [Mon, 3 Jul 2023 05:53:22 +0000 (07:53 +0200)]
vulkan: Add a glyph shader

This shader is an updated version of the mask shader, but I want to use
the mask name for the mask node and that's a different functionality.

Also, add an operation for it and partially implement the mask node
using it, so we can test that this shader works.

Replacing the shader used for text rendering is the next step.

2 years agovulkan: Remove hacky function arguments
Benjamin Otte [Mon, 3 Jul 2023 01:23:17 +0000 (03:23 +0200)]
vulkan: Remove hacky function arguments

They're unused now that we removed the old render ops.

2 years agovulkan: Port linear gradient to new ops
Benjamin Otte [Mon, 3 Jul 2023 01:15:59 +0000 (03:15 +0200)]
vulkan: Port linear gradient to new ops

This was the last user of GskVulkanOpRender, so delete that one, too.

2 years agovulkan: Make border shader use new ops
Benjamin Otte [Sun, 2 Jul 2023 22:56:31 +0000 (00:56 +0200)]
vulkan: Make border shader use new ops

2 years agovulkan: Add a blur op and use it
Benjamin Otte [Sun, 2 Jul 2023 04:30:10 +0000 (06:30 +0200)]
vulkan: Add a blur op and use it

This removes the last old user of offscreens, so those functions are now
gone, too.

2 years agovulkan: Port inset and outset shadow to new ops
Benjamin Otte [Sun, 2 Jul 2023 03:09:24 +0000 (05:09 +0200)]
vulkan: Port inset and outset shadow to new ops

2 years agovulkan: Port blend mode to new ops
Benjamin Otte [Sat, 1 Jul 2023 04:14:48 +0000 (06:14 +0200)]
vulkan: Port blend mode to new ops

2 years agovulkan: Add cross-fade op
Benjamin Otte [Thu, 29 Jun 2023 19:44:40 +0000 (21:44 +0200)]
vulkan: Add cross-fade op

The benefit here is that we can now properly cross-fade when one of
start/end is fully clipped out by just replacing it with an opacity op
for the other.

This was not possible with the old way we did things.

2 years agovulkan: Factor out call to opacity op
Benjamin Otte [Thu, 29 Jun 2023 19:43:26 +0000 (21:43 +0200)]
vulkan: Factor out call to opacity op

I want to reuse it for crossfades (see next commit).

2 years agovulkan: Convert color op to new method
Benjamin Otte [Thu, 29 Jun 2023 04:58:55 +0000 (06:58 +0200)]
vulkan: Convert color op to new method

This is a straightforward and simple port.

2 years agovulkan: Create pipeline differently for ops
Benjamin Otte [Thu, 29 Jun 2023 04:36:17 +0000 (06:36 +0200)]
vulkan: Create pipeline differently for ops

Instead of creating a pipeline GObject, just ask for the VkPipeline.

And instead of having the Op handle it, just let the renderpass look
up/create the relevant pipeline while creating commands so that it can
insert vkCmdBindPipeline calls as-needed.

2 years agoRevert "vulkan: Always render clip extents"
Benjamin Otte [Wed, 28 Jun 2023 23:56:41 +0000 (01:56 +0200)]
Revert "vulkan: Always render clip extents"

This reverts commit 0f184d3270cfac522a05ae06d28cc2f1e32c0e6d.

The renderer is good enough to make use of the clip region.

Or rather: If it isn't, the renderpass should take care of that, not the
render object.

2 years agovulkan: Combine textures and samplers again
Benjamin Otte [Wed, 28 Jun 2023 18:50:43 +0000 (20:50 +0200)]
vulkan: Combine textures and samplers again

This reverts most of commit f420c143e0d8947a433704969bab02aea47d82f5
again because it turns out GPUs like combined images and samplers.

But: The one thing we don't revert is allowing the C code to select any
combination of sampler and image:
gsk_vulkan_render_get_image_descriptor() now takes a 2nd argument
specifying the sampler.

This allows the same flexibility as before, we just combine things
early.

This change was inspired by
https://developer.nvidia.com/blog/vulkan-dos-donts/

2 years agovulkan: Store shaders in the display
Benjamin Otte [Wed, 28 Jun 2023 03:43:53 +0000 (05:43 +0200)]
vulkan: Store shaders in the display

Have a resource path => vkShaderModule hash table instead of doing fancy
custom objects.

A benefit is that shader modules are now shared between all renderers
and pipelines.

2 years agovulkan: Initialize ops differently
Benjamin Otte [Wed, 28 Jun 2023 02:30:35 +0000 (04:30 +0200)]
vulkan: Initialize ops differently

Instead of creating the op manually, just pass in the renderpass and
have the op created from there.

This way ops aren't really initialized anymore, they are more appended
to the queue, so instead of foo_op_init() we can just call the function
foo_op().

2 years agovulkan: Use VkPipeline instead of GskVulkanPipeline
Benjamin Otte [Mon, 26 Jun 2023 21:26:19 +0000 (23:26 +0200)]
vulkan: Use VkPipeline instead of GskVulkanPipeline

This is in preparation for getting rid of GskVulkanPipelines.

2 years agovulkan: Use new ops for repeat nodes
Benjamin Otte [Mon, 26 Jun 2023 01:47:25 +0000 (03:47 +0200)]
vulkan: Use new ops for repeat nodes

The new code always uses an offscreen, even for children that are
exactly fitting texture nodes.
I would have had to write more code and didn't consider it worth it,
especially because it would have required complicating the
get_as_image() function.

This was the last node using the texture pipeline.

2 years agovulkan: Implement fallback using new nodes
Benjamin Otte [Sun, 25 Jun 2023 23:40:45 +0000 (01:40 +0200)]
vulkan: Implement fallback using new nodes

With Cairo upload and texture nodes being available, we can do that now.

2 years agovulkan: Pass bounds to texture op
Benjamin Otte [Sun, 25 Jun 2023 23:39:32 +0000 (01:39 +0200)]
vulkan: Pass bounds to texture op

This way the node can do the normalization (and maybe stop doing it
in the future).

2 years agovulkan: Add a Cairo upload node
Benjamin Otte [Sun, 25 Jun 2023 23:38:50 +0000 (01:38 +0200)]
vulkan: Add a Cairo upload node

... and use it for cairo nodes.

2 years agovulkan: Port opacity to new ops
Benjamin Otte [Sun, 25 Jun 2023 22:29:13 +0000 (00:29 +0200)]
vulkan: Port opacity to new ops

2 years agovulkan: Add offscreen and color-matrix op
Benjamin Otte [Sun, 25 Jun 2023 21:04:43 +0000 (23:04 +0200)]
vulkan: Add offscreen and color-matrix op

.. and use them for color-matrix operations.

2 years agovulkan: Split out a function
Benjamin Otte [Sun, 25 Jun 2023 20:48:02 +0000 (22:48 +0200)]
vulkan: Split out a function

We'll need it elsewhere soon.

2 years agovulkan: Add an argument to vfunc
Benjamin Otte [Sun, 25 Jun 2023 20:16:37 +0000 (22:16 +0200)]
vulkan: Add an argument to vfunc

We need this in the future.

2 years agovulkan: Remove nonexisting function from header
Benjamin Otte [Sun, 25 Jun 2023 15:32:58 +0000 (17:32 +0200)]
vulkan: Remove nonexisting function from header

2 years agovulkan: Split out a function
Benjamin Otte [Sun, 25 Jun 2023 03:02:48 +0000 (05:02 +0200)]
vulkan: Split out a function

Making that function externally usable allows having render passes
managed externally.

Also remove a nonexisting function from the header.

2 years agovulkan: Use new ops for TextureScale nodes
Benjamin Otte [Sun, 25 Jun 2023 03:25:01 +0000 (05:25 +0200)]
vulkan: Use new ops for TextureScale nodes

2 years agovulkan: Add new renderops for texture rendering
Benjamin Otte [Sat, 24 Jun 2023 22:56:13 +0000 (00:56 +0200)]
vulkan: Add new renderops for texture rendering

Adds 2 ops:

- Upload
  Creates a new Vulkan image and uploads data into it

- Texture
  Draws a given image

These 2 ops are then used for GskTextureNodes.

2 years agovulkan: Split texture caching code
Benjamin Otte [Sat, 24 Jun 2023 22:54:10 +0000 (00:54 +0200)]
vulkan: Split texture caching code

Instead of having one function that gets the image for the texture and
uploads it if it doesn't exist yet, make it 2 functions:

One to get the texture if it exists.
One to assign an uploaded image to the texture.

This way, we can potentially do the upload ourselves.

2 years agovulkan: Actually run the op_finish()
Benjamin Otte [Sat, 24 Jun 2023 20:29:47 +0000 (22:29 +0200)]
vulkan: Actually run the op_finish()

It's a no-op for all current ops, so it isn't really necessary. But
that's about to change.

2 years agovulkan: Pass context, not uploader
Benjamin Otte [Sat, 24 Jun 2023 20:23:04 +0000 (22:23 +0200)]
vulkan: Pass context, not uploader

We don't need the uploader when creating the image, only when uploading.

2 years agovulkan: Create the first real VulkanOp
Benjamin Otte [Sat, 24 Jun 2023 02:49:39 +0000 (04:49 +0200)]
vulkan: Create the first real VulkanOp

Split out the scissor op into its own implementation as a proof of
concept of how ops are meant to look when they are actually working.

2 years agovulkan: Allocate render ops differently
Benjamin Otte [Sat, 24 Jun 2023 02:09:56 +0000 (04:09 +0200)]
vulkan: Allocate render ops differently

Allocate the memory up front instead of passing the Op into it.

This way, we can split ops into their own source file and use
init/finish style to use them.

2 years agovulkan: Invent a new abstraction
Benjamin Otte [Sat, 24 Jun 2023 02:00:02 +0000 (04:00 +0200)]
vulkan: Invent a new abstraction

GskVulkanOp is meant to be a proper abstraction of operations
the Vulkan renderer will be doing.

For now it's an atrocious clunky piece of junk wedged into the
renderpass codebase.

It's so temporary that I didn't even adjust indentation of the code.

2 years agovulkan: Use the actual RenderOp type
Benjamin Otte [Fri, 23 Jun 2023 03:08:17 +0000 (05:08 +0200)]
vulkan: Use the actual RenderOp type

... instead of the generic one.

This is again preparation for future changes.

2 years agovulkan: Use a byte array for render ops
Benjamin Otte [Fri, 23 Jun 2023 02:40:05 +0000 (04:40 +0200)]
vulkan: Use a byte array for render ops

This allows allocating only as much memory as is needed for each op.

We don't do that yet, this is still preparation.

2 years agovulkan: Split out a function
Benjamin Otte [Fri, 23 Jun 2023 02:22:49 +0000 (04:22 +0200)]
vulkan: Split out a function

This is preparation for future changes.

2 years agoMerge branch 'dboles/EventControllerKeyModifiersDocs' into 'main'
Emmanuele Bassi [Fri, 14 Jul 2023 14:04:47 +0000 (14:04 +0000)]
Merge branch 'dboles/EventControllerKeyModifiersDocs' into 'main'

EventControllerKey: doc fixes re Modifiers

See merge request GNOME/gtk!6186

2 years agoEventControllerKey: Remove redundant/unliked "See"
Daniel Boles [Fri, 14 Jul 2023 13:22:57 +0000 (14:22 +0100)]
EventControllerKey: Remove redundant/unliked "See"

Saying "See [Thing]" is not very helpful without it being a link to
Thing, and we already get that for free as the "Type:" of the param.

2 years agoEventControllerKey: Remove wrong signal arg, which
Daniel Boles [Fri, 14 Jul 2023 13:22:25 +0000 (14:22 +0100)]
EventControllerKey: Remove wrong signal arg, which

caused the resulting parameter to be called keyval, but it must be state

2 years agoUpdate Georgian translation
Ekaterine Papava [Fri, 14 Jul 2023 11:48:35 +0000 (11:48 +0000)]
Update Georgian translation

2 years agoMerge branch 'nielsdg/fix-sectionmodel-signal-doc' into 'main'
Emmanuele Bassi [Thu, 13 Jul 2023 23:40:03 +0000 (23:40 +0000)]
Merge branch 'nielsdg/fix-sectionmodel-signal-doc' into 'main'

sectionmodel: Fix GIR comment for sections-changed

See merge request GNOME/gtk!6185

2 years agosectionmodel: Fix GIR comment for sections-changed
Niels De Graef [Thu, 13 Jul 2023 23:03:21 +0000 (01:03 +0200)]
sectionmodel: Fix GIR comment for sections-changed

Make sure to end the signal name with a colon so GIR recognizes the
signal. This should also fix the problem that the documentation for that
signal is currently missing in the rendered gi-docgen output.

2 years agoMerge branch 'vulkan-resize-fix' into 'main'
Benjamin Otte [Thu, 13 Jul 2023 13:19:29 +0000 (13:19 +0000)]
Merge branch 'vulkan-resize-fix' into 'main'

vulkan: Wait for device to be idle before create/recreating swapchain

See merge request GNOME/gtk!6183

2 years agovulkan: Wait for device to be idle before create/recreating swapchain
José Roberto de Souza [Wed, 12 Jul 2023 20:26:27 +0000 (13:26 -0700)]
vulkan: Wait for device to be idle before create/recreating swapchain

Wait for device to be idle because this function is also called in
window resizes.
And if we destroy old swapchain it also destroy the old VkImages,
those images could be in use by a vulkan render.

This fixes a issue reported in Mesa repository when running
GTK with Xe KMD.

Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9044
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
2 years agoMerge branch 'fix-validate-crash' into 'main'
Matthias Clasen [Wed, 12 Jul 2023 20:11:46 +0000 (20:11 +0000)]
Merge branch 'fix-validate-crash' into 'main'

buildertool: Exit orderly

Closes #5948

See merge request GNOME/gtk!6182

2 years agobuildertool: Exit orderly
Matthias Clasen [Wed, 12 Jul 2023 19:49:11 +0000 (15:49 -0400)]
buildertool: Exit orderly

The validate command does need a display connection,
for better or worse. So exit in an orderly fashion
if we don't have one, instead of crashing.

Fixes: #5948
2 years agoMerge branch 'wip/otte/for-main' into 'main'
Benjamin Otte [Tue, 11 Jul 2023 00:04:17 +0000 (00:04 +0000)]
Merge branch 'wip/otte/for-main' into 'main'

textbtree: Remove unnecessary check

See merge request GNOME/gtk!6179

2 years agovulkan: Change the clip intersection check
Benjamin Otte [Mon, 10 Jul 2023 23:38:02 +0000 (01:38 +0200)]
vulkan: Change the clip intersection check

Intersection with a roudned clip takes too long.

Instead, rename the function to may_intersect() to be clear about what
it does and then just intersect with the regular rectangle.

2 years agovulkan: intersect rects also for CLIP_NONE
Benjamin Otte [Sat, 8 Jul 2023 08:42:07 +0000 (10:42 +0200)]
vulkan: intersect rects also for CLIP_NONE

If we don't clip anything, we stil have bounds - either the framebuffer
size or (more likely) the scissor rect. And we don't want to draw
anything that is outside these bounds.

So clip in those cases, too.

Stops gtk4-demo --run=listbox from trying to render the whole listbox
instead of only the visible parts.

2 years agorendernode: Implement proper GSK_IS_RENDERNODE()
Benjamin Otte [Mon, 10 Jul 2023 04:23:45 +0000 (06:23 +0200)]
rendernode: Implement proper GSK_IS_RENDERNODE()

Use G_TYPE_CHECK_INSTANCE_TYPE() instead of just checking for != NULL.
After all, this is a GTypeInstance.

Also fixes some gcc complaints when checking
  node == NULL || GSK_IS_RENDERNODE (node)
which gcc was convinced would be always true.

2 years agotextbtree: Remove unnecessary check
Benjamin Otte [Mon, 10 Jul 2023 04:18:44 +0000 (06:18 +0200)]
textbtree: Remove unnecessary check

Since a93614409ed79e1297469bdc1de3cb69663de71e we don't allocate the
stack anymore, so this NULL check is unnecessary now - and it's flagged
by compilers.

2 years agoMerge branch 'dboles/image-notify-storage-type' into 'main'
Matthias Clasen [Fri, 7 Jul 2023 01:15:56 +0000 (01:15 +0000)]
Merge branch 'dboles/image-notify-storage-type' into 'main'

Image—Notify when :storage-type changes from EMPTY

See merge request GNOME/gtk!6170

2 years agoMerge branch 'wip/corey/listitemleak' into 'main'
Emmanuele Bassi [Thu, 6 Jul 2023 23:57:16 +0000 (23:57 +0000)]
Merge branch 'wip/corey/listitemleak' into 'main'

gtklistitemmanager: Stop leaking item

Closes #5940

See merge request GNOME/gtk!6171

2 years agogtklistitemmanager: Stop leaking item
Corey Berla [Thu, 6 Jul 2023 23:24:29 +0000 (16:24 -0700)]
gtklistitemmanager: Stop leaking item

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5940
2 years agoImage—Notify when :storage-type changes from EMPTY
Daniel Boles [Thu, 6 Jul 2023 22:03:20 +0000 (23:03 +0100)]
Image—Notify when :storage-type changes from EMPTY

PROP_STORAGE_TYPE was only notified if it was changing *to* EMPTY, in
gtk_image_clear_internal(). We did not notify when it changes *from*
EMPTY to something non-empty. We should as not doing so is confusing,
e.g. if a user wants to bind :storage-type to :visible if non-empty,
which I just did! So, in functions that apply an ImageType, now notify.

Also do so in gtk_image_set_from_definition, declared in imageprivate.h,
even though none of the function there are currently used anywhere.
(Should they be removed?)

2 years agoUpdate Hebrew translation
Yosef Or Boczko [Thu, 6 Jul 2023 09:38:02 +0000 (09:38 +0000)]
Update Hebrew translation

2 years agoMerge branch 'wip/carlosg/switch-stylus-buttons' into 'main'
Matthias Clasen [Wed, 5 Jul 2023 23:38:38 +0000 (23:38 +0000)]
Merge branch 'wip/carlosg/switch-stylus-buttons' into 'main'

gdk/wayland: Switch behavior of BTN_STYLUS/STYLUS2 as middle/right click

Closes #5935

See merge request GNOME/gtk!6168

2 years agogdk/wayland: Switch behavior of BTN_STYLUS/STYLUS2 as middle/right click
Carlos Garnacho [Wed, 5 Jul 2023 14:24:03 +0000 (16:24 +0200)]
gdk/wayland: Switch behavior of BTN_STYLUS/STYLUS2 as middle/right click

This mapping of stylus evdev input event codes into GDK button numbers
makes gdk/wayland inconsistent with gdk/x11, so depending on the backend
the same button middle-click pastes or right-click pops up menus.

Make the wayland backend consistent with X11, so that a GNOME wayland
session gets these buttons consistently mapped across all kinds of
clients.

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5935
2 years agoGdkTexture: Don't mention private new_from_surface
Daniel Boles [Wed, 5 Jul 2023 11:07:33 +0000 (12:07 +0100)]
GdkTexture: Don't mention private new_from_surface

The stuff about Cairo Surfaces is in gdktextureprivate.h, & so end users
will not be able to use them; we shouldn't confuse by implying they can.

2 years agodocs/list-widget: links, DirList, correct Sections
Daniel Boles [Wed, 5 Jul 2023 11:01:43 +0000 (12:01 +0100)]
docs/list-widget: links, DirList, correct Sections

* Add links to various symbols.
* Mention DirectoryList in the "ready-made choices available" section.
* Don't say that GridView can display headers: it makes no attempt to.

2 years agoMerge branch 'ebassi/issue-5934' into 'main'
Matthias Clasen [Wed, 5 Jul 2023 10:57:45 +0000 (10:57 +0000)]
Merge branch 'ebassi/issue-5934' into 'main'

Lower the Python requirement

Closes #5934

See merge request GNOME/gtk!6167

2 years agoDo not use bleeding edge Python
Emmanuele Bassi [Wed, 5 Jul 2023 09:13:47 +0000 (10:13 +0100)]
Do not use bleeding edge Python

The match operator was added in Python 3.10, which is a bit too new for
some downstreams.

While at it, let's fix the flake8 errors and warnings.

Fixes: #5934
2 years agoAdd flake8 configuration file
Emmanuele Bassi [Wed, 5 Jul 2023 09:12:20 +0000 (10:12 +0100)]
Add flake8 configuration file

Ignore long lines; most of our Python scripts generate code or other
types of files, which makes long lines a necessity.

We should validate all our Python script in our CI as well.

2 years agoAlertDialog: Remove spurious/unmatched backtick
Daniel Boles [Tue, 4 Jul 2023 21:42:50 +0000 (22:42 +0100)]
AlertDialog: Remove spurious/unmatched backtick

2 years agoListBase: Fix a typo
Daniel Boles [Tue, 4 Jul 2023 18:44:56 +0000 (19:44 +0100)]
ListBase: Fix a typo

2 years agoMerge branch 'update-uac-script-format' into 'main'
Matthias Clasen [Mon, 3 Jul 2023 23:37:36 +0000 (23:37 +0000)]
Merge branch 'update-uac-script-format' into 'main'

tools/generate-uac-manifest.py: Fix formatting (unify with copy in GLib)

See merge request GNOME/gtk!6164

2 years agoMerge branch 'wip/otte/for-main' into 'main'
Benjamin Otte [Mon, 3 Jul 2023 20:40:30 +0000 (20:40 +0000)]
Merge branch 'wip/otte/for-main' into 'main'

gsk: Catch values < 0 before bad things happen

See merge request GNOME/gtk!6165

2 years agotestsuite: Add a test for mask out of bounds effects
Benjamin Otte [Mon, 3 Jul 2023 18:51:51 +0000 (20:51 +0200)]
testsuite: Add a test for mask out of bounds effects

Inverted alpha masks have an effect on the source, even if the mask
doesn't cover the source at all - or worse, is completely clipped out.

The GL renderer handles this fine, but Cairo and Vulkan had
optimizations that got this wrong.

2 years agogsk: Fix luminance in Cairo and GL renderer
Benjamin Otte [Mon, 3 Jul 2023 18:45:53 +0000 (20:45 +0200)]
gsk: Fix luminance in Cairo and GL renderer

In particular, fix the combination of luminance and alpha. We want to do
  mask = luminance * alpha
and for inverted
  mask = (1.0 - luminance) * alpha
so add a test that makes sure we do that and then fix the code and
existing tests to conform to it.

2 years agorendernode: Work around a Cairo bug
Benjamin Otte [Mon, 3 Jul 2023 05:14:53 +0000 (07:14 +0200)]
rendernode: Work around a Cairo bug

When color-matrix modifying a clear surface, the surface would remain
clear according to Cairo.

That's very unfortunate when we prepare a mask for inverted-alpha
masking.

2 years agobuild: Include the right things
Benjamin Otte [Mon, 3 Jul 2023 02:45:20 +0000 (04:45 +0200)]
build: Include the right things

If we build our own targets, we need to include those.

This is only relevant when adding new shaders because meson will
complain that the (unused) sources don't exist as it tries to include
those.
And that will make the build.ninja file not be generated which would
have build those shaders and would have allowed to copy them into the
sources.

Note that this makes builds with glslc not care about all the shader
files being included with the sources, but we have CI to check that.

2 years agorendernode: Mask nodes with different modes are different
Benjamin Otte [Mon, 3 Jul 2023 02:44:25 +0000 (04:44 +0200)]
rendernode: Mask nodes with different modes are different

So treat them as such.

Fixes the node editor not updating when I edit the mask mode.

2 years agogsk: Catch values < 0 before bad things happen
Benjamin Otte [Sun, 2 Jul 2023 04:28:29 +0000 (06:28 +0200)]
gsk: Catch values < 0 before bad things happen

In particular, catch radius values being < 0 by return_if_fail()ing in
the rendernode creation code, and by erroring out in the rendernode
parser.

I try too much dumb stuff in the node editor.

2 years agoglcontext: Fix typo in Apple extension name
Benjamin Otte [Sat, 1 Jul 2023 20:37:05 +0000 (22:37 +0200)]
glcontext: Fix typo in Apple extension name

2 years agoPost-release version bump
Matthias Clasen [Mon, 3 Jul 2023 18:56:49 +0000 (14:56 -0400)]
Post-release version bump

2 years ago4.11.4
Matthias Clasen [Mon, 3 Jul 2023 18:12:31 +0000 (14:12 -0400)]
4.11.4

2 years agotools/generate-uac-manifest.py: Fix formatting
Chun-wei Fan [Mon, 3 Jul 2023 04:42:42 +0000 (12:42 +0800)]
tools/generate-uac-manifest.py: Fix formatting

As this script is now also used in GLib, unify the formatting between
GLib and GTK. Make the formatting of the script conformant to the
Black[1] tool, as GLib requires, and add a copyright header to this
script.

[1]: https://black.readthedocs.io/en/stable/, see also
$(glibsrcroot)/.gitlab-ci/run-bash.sh

2 years agoMerge branch 'fix_atcontext_refleaks' into 'main'
Matthias Clasen [Sat, 1 Jul 2023 18:06:19 +0000 (18:06 +0000)]
Merge branch 'fix_atcontext_refleaks' into 'main'

a11y: Fix some GtkATContext reference leaks

See merge request GNOME/gtk!6160

2 years agoa11y: Fix some GtkATContext reference leaks
Barnabás Pőcze [Fri, 30 Jun 2023 04:27:35 +0000 (06:27 +0200)]
a11y: Fix some GtkATContext reference leaks

`gtk_accessible_get_at_context()` is transfer-full, so the returned
reference needs to be dropped. This was missing in a couple places.

2 years agoMerge branch 'gdk-win32-input-fixes' into 'main'
Chun-wei Fan [Fri, 30 Jun 2023 04:33:08 +0000 (04:33 +0000)]
Merge branch 'gdk-win32-input-fixes' into 'main'

GdkWin32 input fixes

Closes #5877

See merge request GNOME/gtk!6131

2 years agoMerge branch 'wip/chergert/map-as-sectionmodel' into 'main'
Matthias Clasen [Fri, 30 Jun 2023 01:50:07 +0000 (01:50 +0000)]
Merge branch 'wip/chergert/map-as-sectionmodel' into 'main'

maplistmodel: implement GtkSectionModel

See merge request GNOME/gtk!6154

2 years agoAdd section model tests for GtkMapListModel
Matthias Clasen [Fri, 30 Jun 2023 01:30:11 +0000 (21:30 -0400)]
Add section model tests for GtkMapListModel

2 years agomaplistmodel: Handle the ::sections-changed signal
Matthias Clasen [Fri, 30 Jun 2023 00:51:26 +0000 (20:51 -0400)]
maplistmodel: Handle the ::sections-changed signal

Wrapper section models need to listen to and pass
on the ::sections-changed signal from the underlying
model.

2 years agoImage: Fix missing closing backtick
Daniel Boles [Thu, 29 Jun 2023 13:33:29 +0000 (14:33 +0100)]
Image: Fix missing closing backtick

2 years agoMerge branch 'dboles/gtk-demo_dnd_dark' into 'main'
Matthias Clasen [Thu, 29 Jun 2023 10:26:41 +0000 (10:26 +0000)]
Merge branch 'dboles/gtk-demo_dnd_dark' into 'main'

gtk-demo/dnd: Fix, generalise detecting dark theme

See merge request GNOME/gtk!6157

2 years agoMerge branch 'matthiasc/for-main' into 'main'
Matthias Clasen [Wed, 28 Jun 2023 23:31:41 +0000 (23:31 +0000)]
Merge branch 'matthiasc/for-main' into 'main'

build: Try harder to work with nongnu ld

See merge request GNOME/gtk!6159

2 years agobuild: Try harder to work with nongnu ld
Matthias Clasen [Wed, 28 Jun 2023 20:54:34 +0000 (16:54 -0400)]
build: Try harder to work with nongnu ld

Only try to be fast with gnu ld.

2 years agogtk-demo/dnd: Fix, generalise detecting dark theme
Daniel Boles [Wed, 28 Jun 2023 13:40:06 +0000 (14:40 +0100)]
gtk-demo/dnd: Fix, generalise detecting dark theme

Our default theme is now Default, not Adwaita, & HighContrastInverse was
renamed to Default-hc. So these checks did not work anymore. Rather than
hard-coding the new names, & possibly running into the same issue again,
we can just look for the convention of appending -dark to the theme name
and/or the Settings:prefer-dark-theme prop. The latter, we can & likely
SHOULD also apply to all themes - not just ours as before. We also check
for the :dark suffix as that means the theme variant - & before checking
GtkSettings check the GTK_THEME env var, just as GtkSettings itself does

2 years agoMerge branch 'matthiasc/for-main' into 'main'
Matthias Clasen [Wed, 28 Jun 2023 12:06:49 +0000 (12:06 +0000)]
Merge branch 'matthiasc/for-main' into 'main'

build: Move objcopy checks to one place

Closes #5672

See merge request GNOME/gtk!6156

2 years agobuild: Look for ld.bfd
Matthias Clasen [Wed, 28 Jun 2023 11:12:07 +0000 (07:12 -0400)]
build: Look for ld.bfd

The objcopy+ld approach to fast resource building
relies on behavior that is specific to the binutils
linker, and does not work with the llvm one.

Therefore, check for ld.bfd. We still fall back
to trying with just ld, since I'm not 100% sure
if binutils unconditionally installs ld.bfd.

Fixes: #5672
2 years agobuild: Move objcopy checks to one place
Matthias Clasen [Wed, 28 Jun 2023 11:11:01 +0000 (07:11 -0400)]
build: Move objcopy checks to one place

We were doing the same thing in three places.
Move it to the toplevel meson.build, so we
can change it in one place.

2 years agoUpdates
Matthias Clasen [Wed, 28 Jun 2023 10:47:32 +0000 (06:47 -0400)]
Updates

2 years agoMerge branch 'fix_dropdown_set_expression' into 'main'
Matthias Clasen [Wed, 28 Jun 2023 09:57:04 +0000 (09:57 +0000)]
Merge branch 'fix_dropdown_set_expression' into 'main'

GtkDropDown: Force redisplay of the drop-down items after expression change

See merge request GNOME/gtk!6145

2 years agodropdown: Handle expression changes
Lukáš Tyrychtr [Mon, 26 Jun 2023 13:45:48 +0000 (15:45 +0200)]
dropdown: Handle expression changes

The expression is used by the default factory, so we
need to track whether we are using the default factory
and recreate it if the expression changes.

2 years agoMerge branch 'matthiasc/for-main' into 'main'
Matthias Clasen [Wed, 28 Jun 2023 02:42:47 +0000 (02:42 +0000)]
Merge branch 'matthiasc/for-main' into 'main'

Plug a memory leak in gsk_render_node_serialize

See merge request GNOME/gtk!6155

2 years agoci: Ignore more leaks in dependencies
Matthias Clasen [Wed, 28 Jun 2023 02:08:22 +0000 (22:08 -0400)]
ci: Ignore more leaks in dependencies

libxkbcommon shows up quite a bit in leak sanitizer
reports. Ignore it.

2 years agogsk: Plug a memory leak in mask node fallback
Matthias Clasen [Wed, 28 Jun 2023 01:54:15 +0000 (21:54 -0400)]
gsk: Plug a memory leak in mask node fallback

We were forgetting to free the mask pattern.
Found by asan.