Commit Graph

81845 Commits

Author SHA1 Message Date
Benjamin Otte
1fac3fe44e compare-render: Compare to reference texture
There's no need to render the original node and compare to its result,
we know that that is equal to the reference image.

Avoids duplicate renderings.
2024-08-29 20:34:23 +02:00
Benjamin Otte
8ac6c08f00 compare-render: Create the reference texture at startup
This allows exiting early when it doesn't exist.
2024-08-29 20:34:23 +02:00
Benjamin Otte
5b62f29b5e compare-render: Rename variables
They conflict with the next commit otherwise.
2024-08-29 20:34:23 +02:00
Benjamin Otte
817cfb09f8 compare-render: Failing to load an image is a failure 2024-08-29 20:34:23 +02:00
Benjamin Otte
8da478ab34 testsuite: Disable a bunch of tests on the GL renderer
We want to generate reference images with the renderers and the GL
renderer can't deal with textures well enough to generate these
reference images.
2024-08-29 20:34:20 +02:00
Matthias Clasen
8d866c5980 docs: Mention that Broadway is an experiment 2024-08-29 07:35:17 -04:00
Jordi Mas
467e622778 Update Catalan translation 2024-08-29 07:13:12 +02:00
Benjamin Otte
aa81df921b testsuite: Correct values for red
The value used was for rec2020 (9/14/0/1), not rec2100-pq (9/16/0/1).
2024-08-29 03:01:30 +02:00
Benjamin Otte
328020b241 Merge branch 'wip/otte/for-main' into 'main'
gl: Fix initial EGL context creation on X11

Closes #6964

See merge request GNOME/gtk!7663
2024-08-29 00:36:19 +00:00
Benjamin Otte
41cd0c6f13 gl: Fix initial EGL context creation on X11
After commit 447bc18c48 EGL on X11 broke.

But the handling of the GL context also was quite awkward because it was
unclear who was responsible for ensuring it got reset.

Change that by making gdk_gl_context_clear_current_if_surface() return
the context (with a reference because it might be the last reference) it
had unset, so that after changing EGL properties the code that caused
the clearing can re-make it current.

This moves the responsibility to the actual code that is dealing with
updating properties and frees the outer layers of code from that task.

And that means the X11 EGL code doesn't need to care and the code in the
Wayland backend that did care can be removed.

Related: !7662
Fixes: #6964 on X11
2024-08-29 01:31:47 +02:00
Benjamin Otte
db02abe54e Merge branch 'wip/otte/to-make-current-or-not-make-current' into 'main'
wayland: Rework how we handle EGLWindows

Closes #6964

See merge request GNOME/gtk!7662
2024-08-28 18:14:03 +00:00
Benjamin Otte
447bc18c48 wayland: Rework how we handle EGLWindows
This essentially reverts the changes from
c230546a2c but implies new semantics.

Namely, surface-attached contexts can now be bound to EGL_NO_SURFACE if
the windowing system isn't ready yet.

It is the task of the windowing system to make sure the context is
properly rebound when the contents become available.
We ensure this by checking in begin_frame() if we created the EGL window
and if we did, we make_current(). This works because creating the EGL
window creates the EGL surface and that does a clear_current(), so this
is always going to have the desired effect of re-making the current
context.

It is very convoluted though.

Fixes: #6964
Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11784
2024-08-28 19:09:45 +02:00
Balló György
283c66251b demos: Set icon for the windows 2024-08-28 17:02:44 +02:00
Luca Bacci
63b68d2f5e Merge branch 'gdk-win32-incremental-rendering-fixes' into 'main'
GdkWin32: Incremental rendering fixes

See merge request GNOME/gtk!7655
2024-08-28 09:30:29 +00:00
Marek Kašík
7e09a5648a Merge branch gtk:main into update-on-print-comboentry-change 2024-08-28 09:12:42 +00:00
Lukáš Tyrychtr
4a0b833548 Apply some review feedback
Namely be sure to set the new role of the widget in all cases
and do it always, even when we need to recreate the AT context.
2024-08-28 10:42:17 +02:00
Lukáš Tyrychtr
86bec01640 a11y: Set the correct role for check button groups
Up-until now, when a group of check boxes was created, they were
still presented as checkboxes, even they semantically were radio buttons.

Note that this approach will not always work, because we're not recreating the
AT context, but it works for the usual pattern where the group is set during
object construction
2024-08-28 10:27:46 +02:00
Matthias Clasen
b07a2a968d Merge branch 'wayland-destroy-ordering' into 'main'
wayland: Fix an ordering problem

Closes #6965

See merge request GNOME/gtk!7658
2024-08-28 01:14:45 +00:00
Benjamin Otte
997d553520 Merge branch 'wip/corey/file-chooser-select' into 'main'
Implement set_selection in GtkSingleSelection

See merge request GNOME/gtk!6376
2024-08-28 00:24:51 +00:00
Corey Berla
8eb05850cb single-selection: Don't allow unselecting with autoselect
According to the documentation, when autoselect is TRUE it will
"will disallow unselecting the current item".
2024-08-27 21:18:56 +00:00
Corey Berla
98eaec99ee gtksingleselection: Implement unselect_all
The default implementation of unselect_all calls
set_selection, which SingleSelection does not have
an implementation for (it's unclear what it would
do with multiple selections).  Add a straightforward
implementation for unselect_all.
2024-08-27 21:18:56 +00:00
Matthias Clasen
8fb946f6e8 Merge branch 'scale-hotfix' into 'main'
theme: Fix positioning of scale values (hotfix!)

See merge request GNOME/gtk!7656
2024-08-27 21:07:40 +00:00
Matthias Clasen
a10670c991 wayland: Fix an ordering problem
When setting an event queue on a proxy, we should not destroy
the queue before the proxy.

May fix: #6965
2024-08-27 16:35:46 -04:00
Danial Behzadi
48f347e62b Update Persian translation 2024-08-27 10:34:00 +00:00
Matthijs Velsink
ed1c047cf2 theme: Fix positioning of scale values
Commit d58b545f fixed a double counting of value size, but didn't check
whether that actually looked great. It doesn't.

Because the slider has negative margins, we need to add margin to the
value if it's on a side with no marks. If it is on a side with marks,
the scale will make it touch the marks. We therefore apply a mark's size
of margin to have the value be in the same place, with or without marks.
2024-08-27 04:47:49 +02:00
Matthias Clasen
ea9c2a72d9 Post-release version bump 2024-08-26 19:55:03 -04:00
Matthias Clasen
15edfe4ffa 4.15.6 2024-08-26 19:26:14 -04:00
Benjamin Otte
c2698e2be9 Merge branch 'wip/otte/for-main' into 'main'
gpu: Fix memleak in GL dmabuf export

See merge request GNOME/gtk!7652
2024-08-26 21:08:48 +00:00
Benjamin Otte
0defdc4af5 gpu: Plug fd leak in fallback path
If we can't construct a dmabuf texture, we need to clear the dmabuf fd.
2024-08-26 20:31:08 +02:00
Benjamin Otte
ea9b47f1b6 gpu: Use common cleanup function
Just simple cleanup, both functions do the same thing.
2024-08-26 20:31:08 +02:00
Benjamin Otte
65c8320a32 gpu: Fix fd leak in GL dmabuf export
The texture ID is not deleted on dmabuf export; a copy is made, the
GskGpuImage retains ownership.

However when doing GL export, the texture *does* take ownership, so we
need the stealing semantics for that case.
2024-08-26 20:31:08 +02:00
Matthias Clasen
a7afde2e7d Merge branch 'scale-fixes-2' into 'main'
scale: Fix two more drawing/sizing issues

Closes #5171 and #6639

See merge request GNOME/gtk!7654
2024-08-26 18:04:27 +00:00
Matthias Clasen
a876a829e4 Merge branch 'scale-fixes' into 'main'
scale: (Re)fix value alignment again (reverting !6935)

Closes #5171 and #6639

See merge request GNOME/gtk!7651
2024-08-26 18:00:20 +00:00
Luca Bacci
f4bd883003 GdkWin32: Try to call _gdk_surface_update_size() only when the size actually changed
Otherwise we adapt Vulkan and OpenGL swap chains a lot and we effectively
disable incremental rendering.

Note that the fix is not complete.
2024-08-26 17:05:19 +02:00
Luca Bacci
0fcdadc531 GdkWin32GLContextWGL: Use the previous frames paint regions kept by GdkGLContext
We do this because:

 a) The parent class (GdkGLContext) already stores the paint regions of
    previous frames, no need to do the same.
 b) The painted region passed to end_frame () includes the backbuffer's
    damage region, so it's not really what we want.

This also fixes a leak of cairo_region_t that I introduced by mistake
in !7418
2024-08-26 17:05:13 +02:00
Matthijs Velsink
d58b545ffb scale: Don't apply borders twice for value
The measured size of the range already includes borders that the scale
calculates. This includes the drawn value. So in the measurement of
scale, the size of the value shouldn't just be added to the size of the
scale, as then the size is effectively added twice.

To fix this, we first measure the minimum size of the range. Then, we
determine the minimum size of our scale. Only then do we set the minimum
size to maximum of those two values.
2024-08-26 13:20:21 +02:00
Matthijs Velsink
8ca299e82b scale: Fix GTK_POS_TOP marks and value order
If both marks are set on top, and the value is drawn on top, the value
should be drawn outside the marks for a horizontal scale.

Currently, that order is incorrect, with the marks shifted up and the
value drawn between the slider and the marks.

This fixes that order.
2024-08-26 13:04:23 +02:00
Scrambled 777
a231a2114a Update Hindi translation 2024-08-26 06:03:28 +00:00
Matthias Clasen
ab41a549f8 Merge branch 'app_menubar_a11y_label' into 'main'
applicationwindow: set menubar a11y label

See merge request GNOME/gtk!7640
2024-08-25 23:45:23 +00:00
Matthijs Velsink
a9997a3af6 scale: Always align value with the trough
We can get the position of the trough from the parent GtkRange class,
and can therefore align directly to that. There is no need to add
symmetry, which can always be added in CSS if needed.

Fixes #5171, #6639
2024-08-25 19:41:25 +02:00
Matthijs Velsink
6d86b16dbe scale: Refactor value allocation logic slightly
This only makes the value allocation logic easier to understand, but
doesn't change anything, apart from not mixing integer and floating
operations anymore which can give a warning under some compiler
settings.
2024-08-25 19:37:38 +02:00
Matthijs Velsink
779d32747d Revert "Merge branch 'scalefix' into 'main'"
This reverts commit 2799632c02, reversing
changes made to 154035e76f.

That MR tried to fix #5171, but by doing a forced symmetry it introduced
another issue for users on Libadwaita, see #6639.

The logic can be much simplified, as the next commits show.
2024-08-25 19:23:54 +02:00
Arjan Molenaar
ffeca06bd6 macos: Revert "macos: fix window transparency"
This reverts commit 84847e46fa.

It breaks maximizing windows.
2024-08-25 12:00:51 +02:00
Asier Sarasua Garmendia
83b387e782 Update Basque translation 2024-08-25 06:01:05 +00:00
Benjamin Otte
b41fe2e093 Merge branch 'wip/otte/slow-down' into 'main'
CI: Reduce max number of tests to 8/4

See merge request GNOME/gtk!7649
2024-08-25 03:50:54 +00:00
Benjamin Otte
93573218d4 CI: Reduce max number of tests to 8/4
CI is hitting various limits after we started out with 32. In
particular, the default runners hit 90s test timeouts.

And the asan runner runs into max threads limits, so reduce that one to
4 tests max.
2024-08-25 04:57:11 +02:00
Matthias Clasen
076968dc1e Merge branch 'ci-do-less-work' into 'main'
compare-render: Do less work for replay

See merge request GNOME/gtk!7647
2024-08-25 01:39:52 +00:00
Matthias Clasen
5e6cf622e3 compare-render: Do less work for replay
We don't need to render the node, we have a reference image.
2024-08-24 20:11:32 -04:00
Matthias Clasen
90c65e3611 Merge branch 'wip/otte/ci-fixes' into 'main'
CI improvements

See merge request GNOME/gtk!7639
2024-08-24 20:25:30 +00:00
Matthias Clasen
afe75aedc2 Merge branch 'dmabufize-experiment' into 'main'
tests: Use dmabufs in compare tests

See merge request GNOME/gtk!7642
2024-08-24 20:25:17 +00:00