Sebastian Wick
f88b54502c
ci: Downgrade libX11 to avoid a bug in teardown
...
Xlib would always report the error
XIO: fatal IO error 9 (Bad file descriptor) on X server ":102"
when mutter is tearing down. This behavior changed somewhere between
version 1.8.7 to 1.8.10 and is tracked at
https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/264 .
Until we have a fixed libX11, we downgrade it to a known-good version.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3918 >
2024-08-09 08:29:21 +00:00
Sebastian Wick
adf28cad71
tests/x11: Get the right mutter pid and be more verbose
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3918 >
2024-08-09 08:29:21 +00:00
Florian Müllner
52a5984c45
build: Bump gsettings-desktop-schemas requirement
...
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3794
depends on the just released 47.beta gds version.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3918 >
2024-08-09 08:29:21 +00:00
Florian Müllner
97978962fb
ci: Bump image
...
Let's pull in gsettings-desktop-schemas 47.beta, so we can
bump the requirement.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3918 >
2024-08-09 08:29:21 +00:00
Florian Müllner
b67afb6fd5
ci: Update gsettings-desktop-schemas check
...
`accent-color` is no longer the most recent setting
we require, but the tablet tool settings for
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3794 .
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3918 >
2024-08-09 08:29:21 +00:00
Carlos Garnacho
ef3de1e58e
wayland: Also cancel XDnD drops with no selected target
...
This is usually an indication of a failed drop operation if the
drop site didn't request any target. Check for this specifically
on XDnD button release, so that we can cancel the DnD operation
right away.
Inspired on a fix from Jonas Ådahl.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3821 >
2024-08-08 12:38:24 +00:00
Carlos Garnacho
6f2f4c5767
wayland: Fix thinko checking for pointers with pressed buttons
...
These are bail out paths, so we should ignore pointers with no
buttons pressed. Spotted by Jonas Ådahl.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3821 >
2024-08-08 12:38:24 +00:00
Carlos Garnacho
fd1d8c778b
wayland: Redirect the focus explicitly to the Xdnd drag source
...
We were relying on the drag source surface to keep receiving events
thanks to it being implicitly grabbed by the button press. This
broke at some point, making the Xdnd drag source unable to keep
directing the DnD operation as it is expected by X11 clients.
To fix this, make the Xdnd MetaWaylandEventInterface stick itself
to the drag source surface keeping the focus of the device driving
the DnD operation, so that the X11 client can still handle events
from it.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3511
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3821 >
2024-08-08 12:38:24 +00:00
Carlos Garnacho
a4ec154c8b
wayland: Add getter for DnD origin surface
...
This private method will be used in later commits.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3821 >
2024-08-08 12:38:24 +00:00
Sebastian Wick
4bf02746e2
tests/kvm: Use the anonymous git remote to check out the kernel
...
Otherwise this fails if one can't authenticate to gitlab.freedesktop.org
or is banned there for whatever reason.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3931 >
2024-08-08 02:40:58 +02:00
Bilal Elmoussaoui
9c7eafc8c3
clutter/context: Track if accessibility enabled
...
Currently, we would only disable a11y if a certain flag is passed
but the function is always called with NONE flag. Instead
drop the flag, use a new environment variable for that
That value is then used by actors to short-circuit get_accessible
implementation and return NULL if the accessibility is not enabled
Also clean the other accessibility functions
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
4eb46eb3d4
clutter/actor: Remove has_accessible
...
Instead, the users of the API can check if get_accessible returns NULL
which is more correct and avoids the extra vfunc that is not even used
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
f7c828f012
clutter: Remove unused FeatureFlags
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
334a85099d
clutter: Remove unused ScrollActor
...
As GNOME Shell has a more complete solution with StScrollable /
StViewport / StScrollbar and does not make use of the Clutter actor.
We might want to "upstream" GNOME Shell infrastructure later at some
point but the current "solution" is too poor, so just drop it
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
ec028553d3
accessibility: Set various accessible names
...
For actors that are created by libmutter itself.
Although, not sure if such names should be translatable?
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
6874e98e5d
clutter/actor: Remove AtkObject.get_attributes impl
...
It returns useless information, the toolkit and it versions are reported
in the ClutterStageManagerAccessible
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
defa3a302d
clutter/actor: Implement AtkComponent.get_alpha
...
And a little clean up along the way
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
cbbf1b7b51
clutter/stage: Set accessible-role at construct time
...
Allows dropping the initialize override
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
cc4d72a343
clutter: Remove CloneAccessible
...
As it only sets the role, which we can set nowadays through a
property in ClutterActor
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
db05ef9c63
clutter/actor: Move few accessible bits from StWidget
...
As they are better fit in ClutterActor
The accessible_role is intentionally put in the public fields
as ClutterActorAccessible needs access to that without going
in recursion
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
f5c2b6949d
clutter/actor: Better fallback for has_accessible
...
Check if the accessible field is set instead of always returning
True
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
471d8d913e
clutter: Rename CallyText to TextAccessible
...
Moving it to the correct namespace and making it final & private
As there is nothing subclassing it
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
71f5d30d7f
clutter: Rename CallyRoot to StageManagerAccessible
...
Moving it to the correct namespace and marking it as a private type
as it is not supposed to be replaced externally
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
3d22e4fe40
clutter: Rename CallyStage to StageAccessible
...
Moving it to the correct namespace and marking it a final private
type
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
02c6473175
clutter: Rename CallyClone to CloneAccessible
...
Moving it to the correct namespace and marking as final
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
7c5223dfc7
clutter: Rename CallyUtil to ClutterAccessibility
...
As nothing is supposed to use it oustide of Clutter, make
it private and final
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
e2e93353d9
clutter: Rename CallyActor to ActorAccessible
...
Moving it to the correct namespace
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
43f24b03e5
cally: Merge inside Clutter
...
Only do the build system bits, we would have to rename
the types and expose at least CallyActor as ClutterActorAccessible
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
1393140d41
cally: Move init utils to Clutter
...
The clutter API was calling the cally one anyways
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
8301272b8e
clutter/actor: Add a get_accessible_type vfunc
...
Allows to avoid using the factories which simplifies the whole thing
and allows external type to create their own accessible types.
Copied from StWidget
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
1e387e9117
clutter/actor: Cache the accessible object
...
Helpful for merging Cally inside Clutter, see next commits
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
d4c73c8341
clutter/stage-manager: Emit accessibility events
...
Instead of making CallyRoot do that and have to duplicate the list
of stages internally...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
135cd40928
clutter/stage: Emit accessibility focus state change
...
Allows us to get rid of CallyStage trying to track what is already
tracked in ClutterStage and simplify the whole thing
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
7571ae6f05
clutter/stage: Track is_active
...
Instead of doing that in both MetaStage & CallyStage.
This allows ClutterStage to also emits the relavant acessibility
bits directly without having a roundtrip through Cally
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
fb02197b4f
cally/actor: Remove no longer useful notify_clutter vfunc
...
As ClutterText is the only one using that, so move the notify call there
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
d8fbaf4533
clutter/text: Emit accessibility state changes
...
Not everything can be easily moved, so only parts of it is done for now
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
e6a394ca10
clutter/actor: Emit accessibility states changes directly
...
Instead of making CallyActor listen to notify, adding an extra overhead
Helps with merging Cally inside of Clutter
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Bilal Elmoussaoui
288ad7206b
clutter/actor: Make ActorFlags internal
...
And only expose a getter/setter for NO_LAYOUT flag
This reduces the possible ways users of the Actor API
can affect the internals and would make next commit
simpler
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3917 >
2024-08-07 22:46:16 +00:00
Sebastian Wick
e3afa1a1d1
color-device: Apply HDR and colorspace calibration
...
The color device now updates the white point via a LUT and sets the
colorspace and HDR metadata properties on monitors to get into the
required configuration.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:45:26 +02:00
Sebastian Wick
dc6632f19b
color-device: Derive color space from monitor calibration
...
This ignores the white point calibration for now because our color state
isn't expressive enough, yet.
Co-authored-by: Joan Torres <joan.torres@suse.com>
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:45:10 +02:00
Sebastian Wick
357e5c92f2
backends: Let the color manager know about monitor changes earlier
...
This makes it possible to set monitor/output properties before the stage
views get re-created.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:56 +02:00
Sebastian Wick
a539071548
output: Fix minor coding style issue
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:56 +02:00
Sebastian Wick
6dc9cab14b
backends: Move MetaOutputHdrMetadata from KmsConnector to Output
...
This makes it independent of the native backend and allows us to use it
in more places.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:56 +02:00
Sebastian Wick
fefcc6edec
color-device: Track the ClutterColorState of the device
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:56 +02:00
Sebastian Wick
c123178f1c
color-device: Rename signal "updated" to "calibration-changed"
...
The generic term updated can mean anything. This is specifically about
calibration related updates like changing the sink colorimetry
(Colorspace, HDR metadata) and changes to the white point for night
light etc.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:56 +02:00
Sebastian Wick
f5ce2ddf3c
color-manager: Create color devices also for virtual monitors
...
We will need color devices on all monitors soon.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:56 +02:00
Sebastian Wick
431c4d12b9
color-device: Make it possible to outlive the active monitors
...
Previously the color device was destroyed when it was attached to a
monitor that was going away. However, the MetaMonitor objects are
ref-counted and can stay around for longer, even if the underlying
resources went away. We need color devices for as long as the
MetaMonitors are alive.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:40:48 +02:00
Sebastian Wick
a10b56e946
color-manager: Dispose instead of finalize
...
Otherwise we'll keep references to color devices for too long.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 16:30:04 +02:00
Sebastian Wick
a50e0a76b6
color-device: Create devices without a ready color manager
...
Every monitor should eventually have a corresponding color device. To
make sure this can work, we must handle situations where the color
manager didn't connect to colord yet, and thus isn't ready.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 15:53:39 +02:00
Sebastian Wick
25e5c59202
color-device: Avoid roundtrip through manager when assining a profile
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 15:53:39 +02:00