Carlos Garnacho
fe9fff2729
clutter: Make detached actions let events through
...
Actions might get detached sometime during event processing,
at a time that the stage did already prepare an emission chain
holding references to the actions and actors that need to handle
events. This means actions might become detached, but still handle
the incoming event, or possible crossing events generated in-place
when the actor becomes unparented.
Avoid this situation, by skipping event handling on actions that
went detached, we will just instruct to continue event processing.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3988 >
2024-08-30 17:24:24 +00:00
Daniel van Vugt
a393bd0ad6
onscreen/native: Promote "Zero-copy disabled" message to a warning
...
Hiding it in debug logging was a little too hidden. Someone might want
to know why performance has degraded without having to restart in debug
mode hoping they can reproduce the issue.
Also remove an assertion that would issue spurious warnings. We should not
always expect IMPORT_STATUS_NONE (implying the first failure must be on
the first frame). Instead we might start with IMPORT_STATUS_OK for a number
of frames and then have a sporadic failure some time later.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3928 >
2024-08-30 13:35:42 +00:00
Daniel van Vugt
31e280c147
onscreen/native: Don't release the dumb buffers on successful zero-copy
...
Because a zero-copy import might fail later for driver or resource reasons.
So we may still need the dumb buffers as a fallback.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3606
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3928 >
2024-08-30 13:35:42 +00:00
Daniel van Vugt
ced0d34142
onscreen/native: Set error when a fallback framebuffer is unavailable
...
This will prevent a spurious g_object_ref warning being followed by
a NULL dereference in `error->message`.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3928 >
2024-08-30 13:35:42 +00:00
Sebastian Wick
2341346c90
wayland: Implement the color management protocol v4
...
To expose it, run mutter/gnome-shell with `--debug-control` and then call
`./tools/debug-control.py --enable ColorManagementProtocol`, or set
`MUTTER_DEBUG_COLOR_MANAGEMENT_PROTOCOL=1`.
Co-authored-by: Joan Torres <joan.torres@suse.com>
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3893 >
2024-08-29 23:00:34 +00:00
Sebastian Wick
7e2627f5d8
wayland: Set the WaylandCompositor as wl_clients user_data
...
This makes it easier to get references to components in wayland
callbacks where the resource is inert and thus has a user_data of NULL.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3893 >
2024-08-29 23:00:34 +00:00
Sebastian Wick
63fa79c878
wayland/surface: Add double-buffered color state
...
This will be used by the color management protocol to set the color
state of a surface.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3893 >
2024-08-29 23:00:34 +00:00
Sebastian Wick
1b2d0a4d4a
debug-control: Add property for toggling color management protocol
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3893 >
2024-08-29 23:00:34 +00:00
Jonas Ådahl
fe0371641f
docs/debugging: Update CI reproduction steps
...
No need to manually deal with pipewire or runtime directories anymore.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3987 >
2024-08-29 22:04:44 +00:00
Jonas Ådahl
3248798978
ci: Rely on socket activated PipeWire
...
The D-Bus test environment helper now handles socket activated PipeWire,
so no need to launch it from the outside.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3986 >
2024-08-29 21:23:48 +00:00
Bilal Elmoussaoui
0104fbe577
actor/x11: Remove unused shadow properties
...
The actor is an internal implementation detail and nothing changes
the value of those properties
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3979 >
2024-08-29 18:17:19 +00:00
Bilal Elmoussaoui
3bc2ab7a6a
x11/shadow-factory: Remove unused APIs
...
As it is a private type now, clean up unused bits
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3979 >
2024-08-29 18:17:19 +00:00
Bilal Elmoussaoui
255ddae7b5
compositor: Make shadow factory types x11 specific
...
As they are only used there, also make their APIs private
as they are not meant to be used externally
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3979 >
2024-08-29 18:17:19 +00:00
Bilal Elmoussaoui
926d041f84
compositor: Replace \r\n with \n
...
Zed Editor, wasn't supported editorconfig yet, causing a mess
in some of my previous commits. Fix that
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3979 >
2024-08-29 18:17:19 +00:00
Bilal Elmoussaoui
43295b80aa
backends/stage-impl: Drop no longer useful CoglContext check
...
As initializing Clutter would fail making MetaBackend to fail before creating
a MetaStage
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
9c7f196ef6
compositor/background: Get ClutterBackend from MetaBackend
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
e85d12deac
compositor/window-drag: Get ClutterBackend from MetaBackend
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
d584a512cb
clutter/stage: Get Context from actor state
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
b3da64c20e
clutter/pick-context: Get CoglContext from actor context
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
617a3aa58b
clutter/actor: Get Backend from associated actor context
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
f49a2a3370
backends/cursor-tracker: Get ClutterBackend from MetaBackend
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
7fca771c4e
wayland/tablet-seat: Get ClutterBackend from MetaBackend
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
182951dea3
compositor/actor: Get ClutterBackend from MetaBackend
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
e3f4e735f5
backends/screencast: Get ClutterBackend from MetaBackend
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
10f630c4a4
wayland/input: Get ClutterBackend from MetaBackend
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
98c36ad1c6
input/action-mapper: Get ClutterBackend from MetaBackend
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
102ca86c97
wayland/text-input: Get ClutterBackend from MetaBackend
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
251d69f21a
wayland/keyboard: Get ClutterBackend from MetaBackend
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
9458008863
wayland/pointer: Get ClutterBackend from MetaBackend
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
370e7d3157
clutter/text: Get Backend from associated actor context
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
3152b4a3f1
clutter/stage: Get Backend & Context from the associated actor
...
Had to move the state construction from init to constructed, to ensure
that the Actor's constructor has been executed and Actor.get_context
won't return NULL
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
62da8d7aac
clutter: Get CoglContext from a CoglTexture where possible
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
5f5448b180
cogl/texture: Expose Texture.get_context
...
Would be useful for next commit
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:40 +02:00
Bilal Elmoussaoui
75c7ced752
clutter/text: Get CoglContext from the actor's associated Backend
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:39 +02:00
Bilal Elmoussaoui
bc633280d9
clutter/stage: Get Backend from stage's associated context
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:39 +02:00
Bilal Elmoussaoui
da625f6dad
compositor/sync-ring: Pass around CoglContext
...
Instead of getting it from the ClutterBackend.get_default
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:39 +02:00
Bilal Elmoussaoui
5831a1a555
backends/x11: Get ClutterBackend from MetaBackend
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:39 +02:00
Bilal Elmoussaoui
faa0860e9d
window: Get Backend from actor's associated context
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:39 +02:00
Bilal Elmoussaoui
b252b9585f
tests/ref-test: Get Backend from actor's associated context
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:39 +02:00
Bilal Elmoussaoui
07431d1abc
tests/clutter: Add a helper for getting the default seat
...
As it is widely used in the tests, simplifies future changes like
the previous one
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:39 +02:00
Bilal Elmoussaoui
c1e9711a83
tests: Use helper to get ClutterBackend
...
Instead of using the get_default API, which goes through
the Context.get_default that we want to get rid of
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:39 +02:00
Bilal Elmoussaoui
1abbfb5ed2
clutter/context: Create a Settings when constructed
...
Instead of removing Settings.get_default, we mark it as deprecated
as a lot of extensions seems to use it
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:39 +02:00
Bilal Elmoussaoui
8013049130
clutter: Stop using Settings.get_default
...
Instead, get it from the context. See next commit
For ClutterText, we had to switch to using constructed
as the ClutterContext will be set for the ClutterActor in the
constructor phase
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:39 +02:00
Bilal Elmoussaoui
8a71c89442
clutter/backend: Keep a back pointer to the Context
...
Will be useful in the upcoming commits
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:39 +02:00
Bilal Elmoussaoui
b02a29fee7
clutter/context: Add API to get the corresponding Settings
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3977 >
2024-08-29 15:26:39 +02:00
Jonas Ådahl
66a45809fa
kms/impl-device: Disarm deadline timer when disabling
...
Otherwise we'll end up firing when not expected to, e.g. when the screen
is locked and monitors are all turned off.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3629
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3982 >
2024-08-29 09:23:07 +00:00
Jonas Ådahl
1d87bcaab2
kms/impl-device: Put deadline timer disarming in a helper
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3982 >
2024-08-29 09:23:07 +00:00
Florian Müllner
d017bf3af7
ci: Replace asciidoc in image
...
gnome-shell switched to rst2man to generate its man pages, so
we can drop asciidoc from the image.
It's unclear (at least to me) what's currently pulling in rst2man,
so it seems safer to explicitly pull that in ourselves.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3983 >
2024-08-29 01:42:27 +02:00
Florian Müllner
8553ca0c2f
ci: Don't explicitly pull in libdisplay-info
...
Fedora's mutter package switched to libdisplay-info a while ago,
so builddep already covers it.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3983 >
2024-08-29 00:40:38 +02:00
Florian Müllner
89a4538f48
ci: Remove unused dependency
...
libgcrypt was included in commit d3a7e9a7b5
to build a newer
version of gcr. Since the gcr dependency is satisfied by the
distro package again, we don't need its build dependencies
anymore.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3983 >
2024-08-29 00:40:21 +02:00