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
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
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
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
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
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
Georges Basile Stavracas Neto
690564277c
frames: Load libadwaita on GNOME
...
Or, optionally, when the MUTTER_FRAMES_PLATFORM_LIBRARY env var is set
to "adwaita". For debugging purposes, it is possible to disable loading
any platform library with MUTTER_FRAMES_PLATFORM_LIBRARY set to "none".
Add the CSS class "ssd-frame" to the MetaFrame (i.e. GtkWindow)
instances
as that lets libadwaita pick the right style, and won't do anything for
non-Adwaita styles.
This patch is specially careful not to link against libadwaita.
Closes https://gitlab.gnome.org/GNOME/mutter/-/issues/2830
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3981 >
2024-08-28 15:29:22 +00:00
Jonas Ådahl
fb588bcb29
tests/dbus-runner: Remove support for service launching via env vars
...
It's no longer used, as the previous usage was replaced by socket
activation.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
4fe6a5fad9
tests: Install most tests
...
Tests that needs to run in a virtual machine are excluded.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
51b2a9a500
tests/dbus-runner: Launch pipewire via socket activation
...
Launching pipewire and wireplumber is racy, as there is an arbitrary
amount of time between pipewire is launched, and that the socket is
bound.
In order to eliminate this race, bind the pipewire sockets ourselves,
and launch pipewire (and wireplumber) when there is activity on the
socket. This is using the systemd method of doing socket activation,
which consists of passing the number of passed file descriptors via
$LISTEN_FDS, and the pid of the launchee via $LISTEN_PID.
The former is easy, just pass the file descriptors, but the former is
more tricky when using python, as executing code before exec() is poorly
supported and likely to be deprecated. To address this, socket
activation services are wrapped in a socket-launch.sh helper which sets
the $LISTEN_PID to itself before calling exec().
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
c2683a20a6
tests/dbus-runner: Use named arguments during setup
...
Will be a bit nice when more arguments are added.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
6b0f7294db
tests/dbus-runner: Move service launching into helper
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
63b59dfa89
tests/dbus-runner: Avoided nested service launch lists
...
list = ['one']
list.append('two,three'.split(','))
results in ['one', ['two', 'three']]
while
list += 'two,three'.split(',')
results in ['one', 'two', 'three']
which is what is expected.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
b2e1f968d9
tests/dbus-runner: Log more about service management
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
d4d5cd2dc1
tests/installed-dbus-session: Add --compile-schemas
...
This will run glib-compile-schemas in the test data directory.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
d9ead43270
tests/dbus-runner: Allow setting custom parser state and environment
...
This will be useful for the installed tests runner, which for some tests
need custom actions that needs to change the environment the test run
in.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
d9b6101b15
tests: Split up 'native-unit' test
...
It had three different parts that deserve their own actual test cases
* virtual monitors
* screen casting
* bezier
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
1a0be0232a
tests: Include 'src/tests' in G_TEST_BUILDDIR
...
This will help with finding executables in installed tests.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
1d724e7e9d
tests/ref-test: Warn if mkdir failed
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
e53bdc4416
tests/ref-test: Set output dir via env var
...
While when running with meson, we want the output to be in meson-logs
for convenience, such a path isn't feasible when running as an installed
test. To address this, make the destination path configurable via an
environment variable.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
7d4db86804
tests/installed: Don't duplicate environment sanity
...
Tests are run via the mutter_dbusrunner.py helper, which handles setting
the gsettings backend, runtime dir etc, so rely on that.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
ecf79ce6cb
tests/build: Move installed tests description to the the end
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
50e667b29b
tests/stacking: Replace a couple of sleep;assert_focused with wait_focused
...
This should hopefully get rid of race conditions in those tests.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Jonas Ådahl
7637627e01
tests/test-runner: Add 'wait_focused' command
...
This aims to replace a reoccuring arbitrary sleep followed by a focus
assertion. The problem with these is that the sleep does not reliably
wait for long enough, due to arbitrary system resource usage in CI and
elsewhere. By instead waiting, and instead asserting we don't have any
intermediate wrong focus, we remove the race, and test for more invalid
situations.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3973 >
2024-08-28 14:57:51 +00:00
Michel Dänzer
c2621eca15
onscreen/native: Set latest cogl sync_fd on KMS update
...
See previous commit log on the effects of this.
This means the deadline evasion needs to be added in both cases in
clutter_frame_clock_notify_presented.
v2:
* Use meta_kms_update_set_sync_fd. (Jonas Ådahl)
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3958 >
2024-08-28 14:42:38 +00:00