Commit Graph

81637 Commits

Author SHA1 Message Date
Emmanuele Bassi
58f2d3fbe7 a11y: Add reference counting to event listeners
Event listeners can register themselves multiple times, and deregister
themselves as well. We need to remove an event listener only if it
dropped all its events.
2024-08-30 09:27:39 +01:00
Emmanuele Bassi
d9f75581be a11y: Get event listeners on root registration
We ask the AT-SPI registry for event listeners already registered when
connecting the root object, in case an AT is running.
2024-08-30 09:27:39 +01:00
Emmanuele Bassi
307efe2172 a11y: Do not emit event signals if there are no listeners
Now that we track event listeners, we can skip the accessibility event
emission altogether if we know nothing is on the other side.
2024-08-30 09:27:39 +01:00
Emmanuele Bassi
4ea4dc9176 a11y: Watch EventListenerRegistered/Deregistered signals
Assistive technologies using AT-SPI typically register themselves on the
accessibility bus through the org.a11y.atspi.Registry.RegisterEvent
method, which will emit the EventListenerRegistered signal. We can use
that signal (and its corresponding EventListenerDeregistered sibling) to
know whether there is at least an AT on the other side of the
accessibility bus.
2024-08-30 09:27:39 +01:00
Changwoo Ryu
9d5652de64 Update Korean translation 2024-08-29 23:29:49 +00:00
Matthias Clasen
bb109b5d9e Merge branch 'matthiasc/for-main' into 'main'
docs: Mention that Broadway is an experiment

See merge request GNOME/gtk!7665
2024-08-29 22:52:39 +00: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
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
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
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
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
Matthias Clasen
8b215a453c Merge branch 'settings_parse_enums' into 'main'
settings: allow parsing enums nicknames from settings.ini

See merge request GNOME/gtk!7641
2024-08-24 17:59:08 +00:00
Matthias Clasen
c3329123a3 Merge branch 'matthiasc/for-main' into 'main'
Add a since tag to GDK_TOPLEVEL_STATE_SUSPENDED

See merge request GNOME/gtk!7645
2024-08-24 17:33:23 +00:00
Matthias Clasen
107ef2017c tests: Use dmabufs in compare tests
Make the --replay mode of compare-render randomly turn textures it
finds into dmabuf textures, using /dev/udmabuf.
2024-08-24 13:10:25 -04:00
Matthias Clasen
acad180cee Add dmabuf tests that can run in ci
This is a test balloon tests that use /dev/udmabuf to produce
dmabufs that we can use in ci, even if we don't have a GPU.
Currently, the tests we can do are somewhat limited, since mesas
software renderers don't support dmabufs yet.
2024-08-24 13:10:25 -04:00
Benjamin Otte
504ca9c0c8 CI: run tests in a single dbus session
Instead of every test spawning their own dbus, make the tests share the
same server, just like they share their own compositor.

This should speed up things a bit and avoid weird interactions when
multiple dbus processes exist.
2024-08-24 18:36:23 +02:00