Jonas Ådahl
c80134d1ba
gdctl: Add support for applying configuration
...
Support defining and applying full configurations, meaning one describes
the whole configuration with one command, fully replacing the active
configuration.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4190 >
2025-01-30 11:29:38 +00:00
Jonas Ådahl
6750136fd3
gdctl: Introduce and use new named enum
...
The named enum (NamedEnum) is used to describe a mapping for enum values
to strings. Enums using this define a function that defines the mapping,
and the named enum handles converting from to strings. This replaces
existing manually coded translations.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4190 >
2025-01-30 11:29:38 +00:00
Jonas Ådahl
2ee918a949
gdctl/monitors-state: Don't keep current state variant around
...
It's not used by anything, all data is accessed by data structures
derived from the variant.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4190 >
2025-01-30 11:29:38 +00:00
Jonas Ådahl
7ddaf23130
gdctl: Hook up to o.g.M.DisplayConfig via dedicated class
...
The "current state" one will use DisplayConfig to query, which
eventually will also do configuration method calls.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4190 >
2025-01-30 11:29:38 +00:00
Jonas Ådahl
e326aed70e
gdctl: Display booleans as yes / no
...
Slightly more human readible and less programmer speak.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4190 >
2025-01-30 11:29:38 +00:00
Jonas Ådahl
481f046cd5
gdctl: Store property enum values as real enums
...
This means declaring an enum class inheriting from enum.Enum.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4190 >
2025-01-30 11:29:38 +00:00
Jonas Ådahl
34195d905a
gdctl: Add LogicalMonitor class
...
This abstracts what makes a logical monitor. Will make it easy doing
manipulations, and makes the print function a bit more readable.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4190 >
2025-01-30 11:29:38 +00:00
Jonas Ådahl
00d5a6a0cd
gdctl: Always display monitor display name if available
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4190 >
2025-01-30 11:29:38 +00:00
Jonas Ådahl
cc11b0682b
gdtl: Add Monitor class
...
This makes it possible to avoid dealing directly with the variant when
operating on a monitor.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4190 >
2025-01-30 11:29:38 +00:00
Jonas Ådahl
3469530dec
gdctl: Add helpers to get relevant state variants
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4190 >
2025-01-30 11:29:38 +00:00
Jonas Ådahl
a3cfd7bd91
Introduce GNOME Display Control (gdctl) utility
...
It's based on `get-state.py`, but with the intention to expand its
functionality into not only listing information, but setting and
changing monitor configurations. It's meant to complement monitor
configurations from Settings with something that has more level of
control.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4190 >
2025-01-30 11:29:38 +00:00
Carlos Garnacho
4cb3518205
core: Make meta_window_move_resize_internal() truly internal
...
This function is no longer used anywhere outside MetaWindow code, so
make it no longer declared at the window-private.h header.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3972 >
2025-01-29 12:44:05 +00:00
Carlos Garnacho
d7fdf6d7d3
x11: Avoid meta_window_move_resize_internal()
...
We are using no placing flags, so this is essentially the same
as meta_window_move_resize().
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3972 >
2025-01-29 12:44:05 +00:00
Carlos Garnacho
92cbefd863
wayland: Avoid meta_window_move_resize_internal()
...
We are using no placing flags, so this is essentially the same
as meta_window_move_resize().
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3972 >
2025-01-29 12:44:05 +00:00
Carlos Garnacho
4664fce695
core: Rename/repurpose meta_window_resize_frame_with_gravity()
...
The gravity argument is no longer effective since the previous
commit. Drop the argument, and rename it to "meta_window_resize_frame",
all callers have been updated.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3972 >
2025-01-29 12:44:05 +00:00
Carlos Garnacho
fb49a700a1
core: Drop MetaGravity argument from move_resize_internal() call
...
Obtain the gravity through the newly added MetaWindow method from the
window being moved/resized.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3972 >
2025-01-29 12:44:05 +00:00
Carlos Garnacho
432e52bad0
core: Drop MetaGravity argument from move_resize_internal() vmethod
...
The implementations no longer need this argument, so drop it in
favor of meta_window_get_gravity().
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3972 >
2025-01-29 12:44:05 +00:00
Carlos Garnacho
33c287e271
wayland: Get gravity through MetaWindow getter
...
Ignore the gravity argument in the move_resize_internal() vmethod,
and use the window getter to get it. It should be functionally
equivalent, and will eventually replace the argument entirely.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3972 >
2025-01-29 12:44:04 +00:00
Carlos Garnacho
37df41097c
wayland: Implement get_gravity() vmethod
...
Handle here the toplevel drag surface getting nortwest gravity,
and fall back to the default static gravity for everything else.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3972 >
2025-01-29 12:44:04 +00:00
Carlos Garnacho
0eaae111d3
x11: Hook up window gravity in size hints to MetaWindow gravity
...
Make us prefer the gravity as it happens through grab ops first, then
the gravity as specified by the client.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3972 >
2025-01-29 12:44:04 +00:00
Carlos Garnacho
ca0c6bcd69
core: Set gravity based on grab op during window move/resize ops
...
We will basically want to follow the gravity as specified by the drag
corner/edge. Hook this up to meta_window_get_gravity().
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3972 >
2025-01-29 12:44:04 +00:00
Carlos Garnacho
0928d3ec32
core: Add meta_window_get_gravity() private call
...
This relies on a class vmethod, so that subclasses can alter
the behavior.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3972 >
2025-01-29 12:44:04 +00:00
Sebastian Wick
919b747fad
build: Require logind for udev support
...
Our udev support depends a lot on logind and is optional. Enforce that
logind is available when udev is enabled.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4223 >
2025-01-29 10:44:57 +00:00
Sebastian Wick
ef0ff602b5
backends: Only build and use MetaLauncher if we have logind
...
Fixes: 23c2c0853c ("launcher: Move from backends/native/ to backends/")
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3878
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4223 >
2025-01-29 10:44:57 +00:00
Sebastian Wick
5152fa142b
context/main: Guard logind code behind #ifdef HAVE_LOGIND
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4223 >
2025-01-29 10:44:57 +00:00
Sebastian Wick
e7ca9cecea
build: Rename have_libsystemd to have_logind
...
We really only need the logind API which can be provided either by
libsystemd or libelogind.
This also pulls out finding a logind provider from the native backend
only code because we make use of it in the generic backend code as well.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4223 >
2025-01-29 10:44:57 +00:00
Sebastian Wick
98519a344f
build: Make the udev build option less ambiguous
...
It controls it for all backends, it just is required for the native one.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4223 >
2025-01-29 10:44:57 +00:00
Philip Withnall
85772a13ce
ci: Bump CI to include latest gsettings-desktop-schemas
...
This is so we get hold of
https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas/-/merge_requests/96 ,
which is needed for changes in gnome-shell in
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3610 .
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4231 >
2025-01-28 14:07:07 +00:00
Daniel van Vugt
156e1b3c07
tests: Fix "fallabck" typo
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4228 >
2025-01-28 00:02:14 +00:00
Sebastian Keller
0d699a74a3
clutter/tests: Remove dead wiki link from README
...
This page does not seem to have been archived properly when the wiki got
shut down so the link does not work anymore. There is no replacement
page in the handbook either.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4229 >
2025-01-27 19:01:43 +01:00
Sebastian Keller
df760910b2
gitlab: Update wiki links in issue templates to point to handbook
...
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3891
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4229 >
2025-01-27 18:58:38 +01:00
Alessandro Astone
87cc6633a5
tests/cursor: Set cursor theme to Adwaita
...
The reference images were generated using the Adwaita theme, so make sure that
the test client also draws a cursrom from the Adwaita theme rather than reading the
default theme from the environment.
Ideally the test suite would embed the cursor theme and point XCURSOR_PATH to
it, so that even if the Adwaita icon theme changes in the future the test
wouldn't suddently break; I did not implement this yet.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4225 >
2025-01-21 18:23:51 +01:00
Bilal Elmoussaoui
04218ac2b5
clutter: Handle accessible focus state change on Actor side
...
That is where it belongs anyways and would handle some missing branches
where we wouldn't update the focus state.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4089 >
2025-01-20 14:23:44 +00:00
Bilal Elmoussaoui
9d72f658af
clutter: Add accessible state tracking
...
Currently, this has been living in StWidget, moving that to Clutter
allows us to properly track the accessibility state changes in the
actors provided inside Clutter as well as simplifying things for a
future move from Atk.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4089 >
2025-01-20 14:23:44 +00:00
Michel Dänzer
a211ed553b
onscreen/native: Do not use modifiers if surface should be sharable
...
Importing a buffer allocated with a modifier into another GPU isn't
handled correctly yet in mutter. We'll want to fix that in the future,
for now just don't use modifiers in this case though, falling back to
GBM_BO_USE_LINEAR, to prevent issues due to mis-matched tiling
parameters.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3791
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4219 >
2025-01-17 15:26:02 +00:00
José Expósito
a4035fc68e
docs/multi-gpu: Document mutter-device-preferred-primary
...
Add documentation explaining how to change the primary GPU using a udev
rule.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4218 >
2025-01-17 15:06:57 +00:00
Yao Wei (魏銘廷)
78c621aa1a
backends/input-mapper: Synchronize device enabled state when adding device
...
When device is added to the mapper, the device may not be in a
desirable state. This changeset updates the device state when
the device is added to the input-mapper.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3834
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4188 >
2025-01-17 05:27:24 +00:00
Jonas Ådahl
c9d8b0b5a9
screen-cast-stream-src/virtual: Track cursor updates via frame clock
...
When the cursor is captured via metadata, schedule updates when the
sprite changes or position moves, so we can gather the cursor change
during dispatch.
Also use the new skipped-paint stage watch to avoid having to guess
whether something will be painted by peeking at the pending damage.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4067 >
2025-01-16 01:04:14 +00:00
Jonas Ådahl
5846061449
stage: Add watch mode for 'skipped' signal
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4067 >
2025-01-16 01:04:14 +00:00
Jonas Ådahl
57cd2bc4f7
stage: Move N_WATCH_MODES next to the enum
...
This makes it harder to forget to update.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4067 >
2025-01-16 01:04:14 +00:00
Jonas Ådahl
3806c0bd44
clutter/stage: Add 'skipped-paint' signal/vfunc
...
This is intended to allow being notified about a stage update happening,
but painting didn't happen. This is possible today by using other
signals and keeping track of painting happened, but it saves us some
state tracking by just being told so.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4067 >
2025-01-16 01:04:14 +00:00
Jonas Ådahl
127c303254
util: Remove meta_warning()
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4005 >
2025-01-16 00:48:42 +00:00
Jonas Ådahl
2d43721c09
wayland: Replace meta_warning() with g_warning()
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4005 >
2025-01-16 00:48:42 +00:00
Jonas Ådahl
6dd7b0c7cd
wayland: Don't warn when there is no session manager
...
This is often the case when running e.g. using `dbus-run-session`.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4005 >
2025-01-16 00:48:42 +00:00
Jonas Ådahl
e88205379b
workspace: Replace meta_warning() with g_warning()
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4005 >
2025-01-16 00:48:42 +00:00
Jonas Ådahl
ed02ce79e9
workspace: Replace a couple of warnings with debug log entries
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4005 >
2025-01-16 00:48:42 +00:00
Jonas Ådahl
7a3f87814b
window: Replace meta_warning() with g_warning()
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4005 >
2025-01-16 00:48:42 +00:00
Jonas Ådahl
654df2b795
util: Use g_warning() when warning about log files
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4005 >
2025-01-16 00:48:42 +00:00
Jonas Ådahl
b264497e4f
restart: Remove trailing whitespace
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4005 >
2025-01-16 00:48:42 +00:00
Jonas Ådahl
97d29ed684
restart: Replace meta_warning() with g_warning()
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4005 >
2025-01-16 00:48:42 +00:00