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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
6452c21b85
color-device: Let the device check if it should skip updating
...
Not everything will require the device to be "ready" (i.e. have a ICC
profile assigned).
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 15:53:39 +02:00
8eeec32c90
color-device: Get temperature from the manager
...
Instead of passing it to the update function. This decouples the
updating from being specifically about the temperature/white point.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 15:53:39 +02:00
682ce3222c
color-manager: Rename function to avoid the term gamma
...
It currently changes the white point using a LUT and will do more things
in the future.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3904 >
2024-08-07 15:53:38 +02:00
9e24fa52c6
core: Include the pkgconfig-specified gdesktop-enums.h
...
Follow up to commit 7658e07be
Refer https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1370
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3916 >
2024-08-07 09:34:52 +00:00
a04d90d9e7
backends/native: Avoid duplicating or losing KMS property sets
...
When triple buffering, `meta_onscreen_native_prepare_frame` for the next
frame is called before `notify_view_crtc_presented` for the previous frame.
So our booleans were unfortunately still TRUE in the second prepare_frame,
resulting in two frames with the same property updates.
When double buffering, having roughly one frame interval between
`meta_onscreen_native_prepare_frame` and `notify_view_crtc_presented`
meant that property updates signalled between the swap and presentation
wouldn't get attached to a KMS update, and would be forgotten when
`notify_view_crtc_presented` resets the flags to FALSE.
To solve these we now keep a separate flag and counter per property,
tracking invalidation and pending updates respectively. The latter is a
counter rather than a boolean in support of triple buffering where two
updates may be pending concurrently (next and posted).
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3912 >
2024-08-07 04:01:17 +00:00
cdbe0a27a2
service-channel: Add client type for filechooser portal
...
Add a new service client type for a filechooser portal client, and
expose the x11_interop protocol to it.
This will be used to make Nautilus a file chooser portal implementation.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3694 >
2024-08-06 16:07:48 +00:00
7937f78c7e
backends/native: Only warn about cursor sizes once
...
Because if the current theme has exceeded the dimensions of
`DRM_CAP_CURSOR_WIDTH/HEIGHT` then the warning is just going to repeat
every time the cursor changes. We still fall back to software cursors
just fine so it's not important to repeat the warning.
In Mutter 46 the warning was "Invalid theme cursor size". Same problem.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3597
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3924 >
2024-08-06 09:58:44 +00:00
07023b65bc
cogl/color: Do not make cogl_color_free introspectable
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3925 >
2024-08-06 01:27:12 -06:00
d422cddc2e
cogl/color: Ensure Cogl.Color.equal() is introspectable
...
We need to explicitly define the type, being a generic const pointer.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3925 >
2024-08-06 01:23:55 -06:00
3c070604dd
backend/x11/clutter-backend: Group glib header include correctly
...
glib.h is not a bundled header, so move it accordingly.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3923 >
2024-08-05 21:32:38 +02:00
de76e007b5
cogl: Fix some whitespace issues
...
The removal of the onscreen template left some function definitions and
declarations incorrectly indented.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3923 >
2024-08-05 21:31:43 +02:00
c5e9f028b2
cogl: Provide backwards compat for GLSL version 140 shaders
...
We still use GLSL 100 syntax which means `varying`, `attribute` and
`gl_FragColor` but GLSL 140 wants us to use `in` and `out`. This
provides some simple `#define`s to make it still look like the GLSL 100
syntax is supported.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3907 >
2024-08-05 17:57:11 +00:00
ea696ae4b1
cogl: Repace codegen_boilerplate_buffer with a local variable
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3907 >
2024-08-05 17:57:11 +00:00
94806c98bf
cogl: Derive GLSL version from major, minor and GL vs GLES
...
The GLSL version can be derived from the major and the minor, with the
exception that GLSL ES versions require the "es" suffix.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3907 >
2024-08-05 17:57:11 +00:00
e122943bcd
cogl/gl: Check GLSL version and unify GL context version checks
...
This adds a check which makes sure that the required GLSL/GLSL ES
versions are supported.
It also splits out the GLES version check into its own function, just
like GL does.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3907 >
2024-08-05 17:57:11 +00:00
74917e1b07
cogl/gl: Use g_auto (GStrv) and g_autofree in more cases
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3907 >
2024-08-05 17:57:11 +00:00
da2e931355
clutter/backend: Remove get_display vfunc
...
As there is no separate implementations anymore
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3915 >
2024-08-05 15:47:29 +00:00
b684dc0382
clutter/backend: Provide a default get_display implementation
...
As there is no on screen template checks done on the x11 backend implementation
so simplify that.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3915 >
2024-08-05 15:47:29 +00:00
5277e33d37
cogl: Remove no longer used OnscreenTemplate
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3915 >
2024-08-05 15:47:29 +00:00
3b386ba5d7
cogl: Remove no longer used FramebufferConfig
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3915 >
2024-08-05 15:47:29 +00:00