12c7c1bffb
eis/client: Add user_data to add-device helper
...
This will allow passing extra context to the configure function.
Currently all NULL, but preparing for the future.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3228 >
2023-09-01 10:43:26 +00:00
63acc732ad
eis: Add some spacing in API declarations
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3228 >
2023-09-01 10:43:26 +00:00
2eda81aadf
remote-desktop/session: Limit device type access when using libei
...
The portal could limit access to certain device types, but this was not
forwarded to the EIS context. Add a way to do this, and make use of it.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3228 >
2023-09-01 10:43:26 +00:00
72cc627546
eis/client: Fix minor coding style issues
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3228 >
2023-09-01 10:43:26 +00:00
e2a9e6c36b
eis/client: Fix indentation
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3228 >
2023-09-01 10:43:26 +00:00
0160f3c0a0
remote-desktop/session: Take over EIS context
...
This means there will be an EIS context per session, which will enable
per session devices and region.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3228 >
2023-09-01 10:43:26 +00:00
ce61c8dc61
eis: Don't expose global socket
...
How EIS will be used depends on its context, meaning we'll have multiple
EIS contexts that expose different things. To prepare for this remove
the global socket since that won't work with multiple contexts.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3228 >
2023-09-01 10:43:26 +00:00
7e8bc5850e
eis: Remove meta_ prefix from variables
...
This is more or less never used elsewhere, so don't start here.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3228 >
2023-09-01 10:43:26 +00:00
98738535dc
thread: Remove unused variable when HAVE_PROFILER is not defined
...
This fixes a compiler warning:
```
meta-thread.c:297:16: warning: unused variable ‘context’ [-Wunused-variable]
297 | MetaContext *context = meta_backend_get_context (priv->backend);
| ^~~~~~~
```
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3223 >
2023-08-31 22:18:11 +00:00
aed9f7eb9d
backends: Make base MetaCursorRenderer implementation want an overlay
...
This used to be the behavior, until commit 5d35138df0
changed the meaning
of the return value of MetaCursorRendererClass::update_cursor(). This
made the user of pure-overlay cursors (singular, MetaWaylandTabletTool)
miss their overlays.
Change the return value, so that it matches the desired behavior of
a backend-less overlay-only cursor renderer.
Fixes: 5d35138df0
("cursor-renderer: Make 'handled_by_backend' state 'needs_overlay'")
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3218 >
2023-08-31 21:46:35 +00:00
d24be90941
backends/native: Fix accounting of cursor overlay inhibition
...
We react on changes to has_hw_cursor, but always try to inhibit if
there is no cursor sprite. While this looks like a reasonable optimization
with the typical situation of one cursor renderer, it may fall into
inhibiting twice without knowing to unwind, e.g.:
1. has_hw_cursor: TRUE, cursor_sprite: !=NULL -> inhibit
2. has_hw_cursor: FALSE, cursor_sprite: NULL -> inhibit
3. has_hw_cursor: TRUE, cursor_sprite: !=NULL -> uninhibit, but once
And this may also result in the CLUTTER_PAINT_FLAG_NO_CURSORS flag
staying on for Tablet cursors, that (so far) always use overlay paths.
This results in invisible tablet cursors after using the mouse at
least once.
Fixes: e52641c4b6
("cursor-renderer/native: Replace HW cursor with KMS cursor manager")
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3218 >
2023-08-31 21:46:35 +00:00
1abef24154
mtk: Move Rectangle.from_graphene_rect from Meta
...
And drop the clutter helper
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:14 +02:00
a93471eb90
mtk: Move Rectangle.to_graphene_rect from Meta
...
Also drops the clutter equivalent
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:14 +02:00
3d693e8309
mutter: Completely replace MetaRectangle with MtkRectangle
...
There are still various helpers that might be worth to move to mtk as
well
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:14 +02:00
eafe07de31
mtk: Move Rectangle.overlap_* from Meta
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:14 +02:00
db77759938
mtk: Move Rectangle.area from Meta
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:14 +02:00
565acaed9c
mtk: Move Rectangle.intersect from Meta
...
Also replaces it usage everywhere & remove the Clutter helper. Note the
tests were not moved yet to mtk.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:14 +02:00
9b2cba4e86
mtk: Move Rectangle.equal from Meta
...
Moves equal the equal function and removes the clutter equivalent. The
tests were not moved until all the remaining helper functions are moved.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:13 +02:00
918ae0f4d4
mutter: Replace cairo_rectangle_int_t with MtkRectangle
...
Note: the various helpers in boxes.c were not ported yet, see the next
commit. This was intentionally done to simplify the porting process
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128 >
2023-08-30 16:46:13 +02:00
ff4d87727b
Update license access method
...
Dropped obsolete Free Software Foundation address pointing
to the FSF website instead as suggested by
https://www.gnu.org/licenses/gpl-howto.html
keeping intact the important part of the historical notice
as requested by the license.
Resolving rpmlint reported issue E: incorrect-fsf-address.
Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com >
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3155 >
2023-08-30 08:48:23 +02:00
b004d1c577
cleanup: Drop empty vfuncs overrides
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3209 >
2023-08-29 23:38:32 +00:00
7d8d7c89d4
backends: Check that buffer age is available when checking damage history
...
This used to be the case before the refactor at commit 43cee4b6b6
,
use_clipped_redraw would be unset before the larger check if has_buffer_age
was set, but clutter_damage_history_is_age_valid() was FALSE. This got
replaced by a check just on the latter, which will also be FALSE if
has_buffer_age is not present.
We have other means to achieve clipped redraws, so this slight change
culled all of them.
Fixes: 43cee4b6b6
("stage-impl: Do clipped redraws when drawing offscreen")
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2771
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3221 >
2023-08-29 11:27:35 +02:00
8db400660a
backends/x11: Drop warning about libinput property item count
...
libinput 1.3 introduced a custom acceleration profile extending the
related properties from 2 to 3 items, which now triggering this warning.
This does not have a functional impact since GNOME currently does not
make use of the new profile. Also increasing the libinput version
dependency which would be needed to change the expected item count is
not possible in a stable release either. So just drop this warning to
be compatible with newer versions of libinput.
See: https://gitlab.freedesktop.org/xorg/driver/xf86-input-libinput/-/merge_requests/39#note_1656566
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2987
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3215 >
2023-08-26 12:15:47 +02:00
069fe8e915
src: Chain up to finalize()
...
We forgot to chain up to the parent class' `finalize()` vfunc in both
`MetaEis` and `MetaEisClient`. Plugs 2 (probably tiny) memory leaks.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3203 >
2023-08-22 21:57:07 +02:00
c4d7265656
kms/cursor-manager: Transform cursor movement from view space to CRTC
...
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2955 ,
https://gitlab.gnome.org/GNOME/mutter/-/issues/2957
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3180 >
2023-08-22 15:16:27 +00:00
ca27dbabd9
backends/native: Pass cursor transform from renderer to cursor manager
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3180 >
2023-08-22 15:16:27 +00:00
5a05b1a901
monitor-transform: Invert the behaviour of transform_point
...
Previously it transformed a physical CRTC coordinate to a logical desktop
coordinate. But current and future users of the function all require
conversion from logical coordinates to physical coordinates. We would have
had to always invert the transform parameter which is a waste of time when
we can instead just invert the function behaviour.
We also simplify the parameters to show both the point coordinate and the
area dimensions are potentially transformed.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3180 >
2023-08-22 15:16:27 +00:00
5d72be4016
backends/native: Regain time precision in a11y generated events
...
Get times in microseconds, instead of converting from milliseconds.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3190 >
2023-08-21 15:11:15 +00:00
d4c923edf9
screen-cast/window-src: Report alpha-enabled pixel format
...
This allows windows screencasts with proper shadows, instead of
a black border around the window!
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2099
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3175 >
2023-08-19 23:42:04 -03:00
215b91a2e6
screen-cast/src: Consider preferred format for stream
...
When creating a new stream, check if the preferred format is
different from the default (COGL_PIXEL_FORMAT_BGRX_8888). If
it is, then also include it in the list of potential formats
for the stream.
COGL_PIXEL_FORMAT_BGRX_8888 is still passed around as it's
both the default, and the fallback for when things go wrong.
When creating buffers, use the negotiated SPA format instead
of a hardcoded value. We leave it to PipeWire to figure out
what's the best format, since clients may not support the
preferred format of the stream.
Due to how chaotic things got, this commit also cleans up
the create_pipewire_stream() to use an auxiliary array of
SPA formats, which is then iterated on in order to generate
the format pods.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3175 >
2023-08-19 23:42:04 -03:00
b6bf6572a1
screen-cast/src: Add get_preferred_format vfunc
...
This allows subclasses to hint which pixel format they would
prefer to be used. It may or may not be respected, depending
on the available hardware capabilities.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3175 >
2023-08-19 23:00:28 -03:00
e24be82c12
backends/screen-cast: Pass pixel format to DMA-BUF constructor
...
Following the previous commit, do the same function parameter
treatment to meta_screen_cast_create_dma_buf_handle().
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3175 >
2023-08-19 23:00:28 -03:00
b391ded7bf
renderer/native: Try to convert and use Cogl format
...
Convert the CoglPixelFormat format to a DRM format, and try
and use it to create a GBM buffer.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3175 >
2023-08-19 23:00:28 -03:00
fdc3f3fec3
cogl/renderer: Pass pixel format to DMA-BUF constructor
...
In future commits, we will want to create DMA-BUFs with pixel
formats other than COGL_PIXEL_FORMAT_BGRX_8888. In preparation
for that, let's start passing a new pixel format parameter to
this function, and the corresponding winsys vfunc.
All callers of this function pass COGL_PIXEL_FORMAT_BGRX_8888
for now. Next commits will change that.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3175 >
2023-08-19 23:00:28 -03:00
14ed29e7b2
renderer/native: Trivial variable rename
...
Rename 'format' to 'drm_format' to not clash with following
commits.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3175 >
2023-08-19 23:00:28 -03:00
f57c239a26
kms/cursor-manager: Free struct in meta_kms_cursor_manager_impl_free()
...
The free function was not actually freeing anything, which was causing a
small leak.
Fixes: 6d873036e
("Add KMS cursor manager")
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3188 >
2023-08-17 00:00:39 +02:00
5fdb6a847f
kms/update: Free struct in meta_kms_crtc_color_updates_free()
...
The free function was only freeing the structs its members were pointing
to, but not the struct itself, causing a small leak.
Fixes: 0180ffdaa
("backends/native: Introduce MetaKmsCrtcColorUpdate")
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3188 >
2023-08-16 21:24:28 +02:00
cd27cb5c85
cleanup: Fix various typos
...
Using the typos cli app
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3169 >
2023-08-12 20:13:37 +00:00
04f18ae726
backend/x11: Free barriers in meta_backend_x11_dispose
...
Should fix a memory leak.
Fixes: 0debb24e12
("barriers: Make barriers fully part of the
backend").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
830f8fcf06
Remove unused meta_seat_x11_lookup_device_id
...
Unused since d72bacb3cd
("backends/x11: Drop handling of
XI_DeviceChange").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
58326c85a4
Remove unused meta_seat_impl_get_devices_in_impl
...
Never used AFAICT.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
43716457d1
Remove unused meta_renderer_x11_nested_ensure_legacy_view
...
Unused since fc8a4afc45
("Remove meta_is_stage_views_enabled()").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
15df7c62a3
Remove unused meta_power_save_to_dpms_state
...
Unused since 5f6aee3419
("kms/update: Make power saving an update wide
change").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
c3afdefd15
Remove unused meta_output_is_laptop
...
Unused since cbb2a286f2
("monitor-manager: Don't use wacky physical
dimensions in display name").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
d3ec28848b
Remove unused meta_monitor_get_crtc_mode_for_output
...
Unused since e52641c4b6
("cursor-renderer/native: Replace HW cursor
with KMS cursor manager").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
7f9b71cd42
Remove unused meta_kms_update_drop_plane_assignment
...
Unused since 02b1cfe08f
("onscreen/native: Handle unexpected scanout
failures async").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
f4b8704ae9
Remove unused meta_keymap_x11_get_key_group
...
Unused since 09b956997c
("backends/x11: Drop platform-specific event
data").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
fbe904471c
Remove unused meta_get_renderer_native_parent_vtable
...
Unused since fe72876b20
("cogl/onscreen: Make swap_buffer/region
CoglOnscreen class vfuncs").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
a9b42c5c10
Remove unused meta_frame_native_set_kms_update
...
Never used AFAICT.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
a828eab13c
Remove unused meta_crtc_kms_is_gamma_invalid
...
Unused since 24bdafa220
("onscreen/native: Track GAMMA_LUT
invalidations here").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00