Commit Graph

31059 Commits

Author SHA1 Message Date
7f7bcf1f5d clutter: Check ClutterEventFlags under clutter_event_is_pointer_emulated()
This function checks a field that is now never set. Make this function
useful again by checking CLUTTER_EVENT_FLAG_POINTER_EMULATED as these
events are now set.

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
b814aff600 common/drm-formats: Add function to map Cogl → DRM
It's basically the reverse mapping. It does not deal with
multiplanar formats.

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
fd5726714b Update Kazakh translation 2023-08-19 07:42:49 +00:00
77e6f29544 Update Finnish translation 2023-08-17 17:56:53 +00:00
73bc074917 core: Destroy the correct opaque region when destroying a frame
Freeing the window opaque region rather than the frame one when was
leaking the frame opaque region and wrongly setting the window opaque
region to NULL.

Fixes: 82b2b7688 ("core: Add infrastructure to keep window frames' opaque regions")
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3188>
2023-08-17 00:00:55 +02: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
193a21c601 surface-actor-wayland: Fix leak in apply_transform()
Using g_object_get() to get the allocation creates a copy that needs to
be freed by the caller.

Fixes: e94b52777 ("surface-actor/wayland: Implement stable size and position rounding")
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3188>
2023-08-16 21:24:28 +02:00
03ba3a825e context: Fix a small leak in meta_context_main_get_x11_display_policy()
The caller of sd_pid_get_user_unit() is supposed to free the unit name
string.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3188>
2023-08-16 21:24:28 +02:00
90a00dae99 compositor: Handle grab state through ClutterStage::is-grabbed handler
This is something the compositor could now track by itself, instead of
being pushed through events. It also makes more sense to do this directly
when the grabbing conditions change, as opposed to the next event.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3185>
2023-08-16 15:34:46 +00:00
0b9f5ae75b tests: Add test case for restoring focus after overview
This is a test case for
https://gitlab.gnome.org/GNOME/mutter/-/issues/2690.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3185>
2023-08-16 15:34:46 +00:00
05eeb684d1 window: Postpone focusing until grab ended if uninteractable
When GNOME Shell is in the overview, we don't want windows to steal
focus left and right, but once we leave the overview, we do want
whatever was mapped with "take_focus" to get focus. Do that, but after
the last grab was dismissed.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2690
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3185>
2023-08-16 15:34:46 +00:00
03ee48094e clutter/stage: Add is-grabbed property
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3185>
2023-08-16 15:34:46 +00:00
587c31b611 tests/test-runner: Add toggle_overview command
This will emit the `overlay-key` key which will be handled by the test
shell.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3185>
2023-08-16 15:34:46 +00:00
8268ec2ee8 tests/test-shell: Emulate overview grabs
This mimics what gnome-shell does when the overview is shown. This means
having a grab active, and setting the keyboard focus to the stage
itself.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3185>
2023-08-16 15:34:46 +00:00
524c9aa458 tests: Introduce and use a custom test shell
Except for the tests that launches `mutter`, use a custom shell
implementation. It's roughly a copy of default.c with some cleanups on
top. A custom shell allows for a bit more freedom when doing testy
things.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3185>
2023-08-16 15:34:46 +00:00
be3bca01a7 clutter: Check that pointer has coordinates prior to repick
This might fail during initialization, or after first pointer
interaction on a pointer-less (e.g. touch-only) session.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2964
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3183>
2023-08-15 22:46:08 +00:00
88af55b857 clutter: Add boolean return value to clutter_stage_get_device_coords()
The device/sequence may not currently have a set of coordinates to return.
We correctly leave the out values uninitialized, but don't tell the upper
layers in any way.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3183>
2023-08-15 22:46:08 +00:00
1da1b00de4 ci: Rebase image to F39
F39 has been branched, so we can use it as base of our CI image
and reduce the number of custom built components.

This will also help if gjs adds support for import maps and
gnome-shell bumps its gjs dependency to use it, as F39
already includes the new mozjs version that gjs now uses.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3173>
2023-08-15 00:28:47 +02:00
8cca27c831 ci: Use sudo to run meson install
Meson stopped using polkit for automatic priviledge elevation, and
will no longer attempt any priviledge elevation when not running
interactively.

Running the entire install command as root used to be problematic
in the past, as it could result in ownership changes of files in
the build directory that would result in build failures later,
but the aforementioned change leaves us with little choice.

Presumably those issues have been fixed, let's hope that's true.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3173>
2023-08-14 15:05:59 +02:00
92051d59a6 constraint: Use WxH format for size in debug logs
Whether W,H or +W,H means "size" or "position" is rather unclear; fix
that by formating size as WxH instead of +W,H.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3124>
2023-08-12 21:11:15 +00: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
b081e51a21 Remove unused meta_x11_display_increment_event_serial
Unused since dfcefd3315 ("Remove meta_core_increment_event_serial").

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154>
2023-08-12 19:53:46 +00:00
1a5fb51396 Remove unused meta_window_x11_has_active_sync_alarms
Never used AFAICT.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154>
2023-08-12 19:53:46 +00:00
75a7870259 Remove unused meta_wayland_tablet_pad_group_lookup_resource
Never used AFAICT.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154>
2023-08-12 19:53:46 +00:00
76c5eb0060 Remove unused meta_wayland_pointer_constraint_get_seat
Unused since 8a8d47725c ("backends: Delegate pointer confinements to
an impl object").

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154>
2023-08-12 19:53:46 +00:00
09feed5d21 Remove unused meta_wayland_data_device_is_dnd_surface
Unused since 6ec7fa2cbd ("wayland: Use surface role when special
casing surface commits").

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154>
2023-08-12 19:53:46 +00:00
16e8bb34de Remove unused meta_stack_get_bottom
Unused since 1b3a58c951 ("...").

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
3b847f28ad Remove unused meta_region_scale_double
Unused since 8b3c1f4b87 ("cullable: Generalize actor coordinates space
translation for regions").

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154>
2023-08-12 19:53:46 +00:00
65add94bfd Remove unused meta_rectangle_edge_to_string
Unused since 52bc675fcb ("introspection: remove --allow-unprefixed")
(if ever used at all).

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
3bf3b14e3f Remove unused meta_crtc_kms_get/set_cursor_renderer_private
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