Jonas Ådahl
45abae7ebb
wayland/idle-inhibit: Remove confusing comment
...
Something about the surface being destroyed and visibility checked,
which isn't what is going on.
Fixes: 388b534062
("wayland: Implement idle inhibit protocol")
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3219 >
2023-08-28 16:24:59 +02:00
Charbel Assaad
388b534062
wayland: Implement idle inhibit protocol
...
This is based on the original work done by:
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/111
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/20
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3145 >
2023-08-26 20:19:22 +02:00
Sebastian Keller
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
Jonas Ådahl
e683264051
tests: Add metatests for cloned windows and suspend state
...
Tests https://gitlab.gnome.org/GNOME/mutter/-/issues/2984 .
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3213 >
2023-08-25 21:15:07 +02:00
Jonas Ådahl
87b7b073d3
window-actor: Don't update suspend state if no window
...
If the window is gone, don't try to update it. This might happen on
unmap animations with active clones.
Fixes: 9a2c8b2592
("window: Add suspend state")
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2984
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3213 >
2023-08-25 21:15:07 +02:00
Jonas Ådahl
cb6290832e
tests/test-runner: Add utilities for testing cloned windows
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3213 >
2023-08-25 21:15:07 +02:00
Jonas Ådahl
9df38c2126
tests/test-runner: Fix include order
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3213 >
2023-08-25 21:15:07 +02:00
Jonas Ådahl
baa0f62ced
tests/shell: Restore minimized actor state in idle callback
...
This fixes the following
1. Minimize window; minimize animation starts
2. Do something that immediately destroys the animated actor (e.g. terminate)
3. This triggered the timeline of the animation to emit a "stopped"
signal while all transitions of the actor were destroyed
Previously we'd implicitly animate the scale again (set_scale(..)) which
created a new transition The hash table iterator didn't like this and
abort():ed
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3213 >
2023-08-25 21:15:07 +02:00
Jonas Ådahl
1e25cb746a
window: Don't update suspend state after unmanaging
...
The actor will try to update the suspend state when it goes away, which
can in the case of unmap animations be after the window was unmanaged.
In this case, don't try to update any suspend state.
Fixes: 9a2c8b2592
("window: Add suspend state")
Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/2984
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3213 >
2023-08-25 15:48:19 +02:00
Jonas Ådahl
b743cc3528
tests/test-runner: Add 'sleep suspend_timeout' command
...
It's a tweak to the 'sleep' command to allow well known sleep lengths.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3213 >
2023-08-25 15:47:05 +02:00
Jonas Ådahl
5071a6df87
wayland/xdg-shell: Set the suspended
state to suspended windows
...
This will allow clients to e.g. enter power saving mode when they are
e.g. on another workspace, minimized or fully obstructed.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3019 >
2023-08-24 19:57:58 +00:00
Jonas Ådahl
3af02e1b57
wayland/xdg-shell: Implement support for xdg_toplevel.wm_capabilities
...
Nothing dynamic yet, we don't have API for this, but we need it to
implement the next version. Sending "all" should be equivalent to v4
anyhow, so this is harmless.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3019 >
2023-08-24 19:57:58 +00:00
Jonas Ådahl
9a2c8b2592
window: Add suspend state
...
The 'suspend state' is meant to track whether a window is likely to be
visible any time soon. The hueristics for this are as follows:
* If a window is hidden, it will enter the 'hidden' state.
* If a window is visible, and unobscured, it will enter the 'active'
state.
* If a window is visible, but obscured by another window, it will enter
the 'hidden' state.
* If there is a mapped clone of a window, it will enter the 'active'
state.
* If the window has been in the 'hidden' state for 3 seconds, it will
enter the 'suspended' state.
This will eventually be communicated to Wayland clients so that they can
change their behaviour to e.g. save power.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3019 >
2023-08-24 19:57:58 +00:00
Jonas Ådahl
2d7a062913
window-actor: Be more consistent declaring the property
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3019 >
2023-08-24 19:57:57 +00:00
Niels De Graef
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
Daniel van Vugt
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
Daniel van Vugt
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
Daniel van Vugt
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
Sebastian Keller
133931e3a3
core: Don't unmap XWayland windows without buffers on visibility update
...
18be74ed
was changing meta_window_should_be_showing_on_workspace() to
only show XWayland windows when they have buffers to prevent starting
transitions with a seemingly black window.
This however did not just delay the transition, but when called in
meta_window_update_visibility() could result in the X11 window getting
unmapped again if the call happens before there is a buffer. Then,
depending on the client, the window would either remain hidden or if the
client tries to map the window again, this would repeat the process,
triggering the closing transition every time.
This commit instead just hides the XWayland window from the compositor
but keeps the corresponding X11 window mapped while it does not have a
buffer yet.
Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/2611
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2965
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2820
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2867
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3194 >
2023-08-21 18:32:41 +00:00
Carlos Garnacho
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
Georges Basile Stavracas Neto
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
Georges Basile Stavracas Neto
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
Georges Basile Stavracas Neto
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
Georges Basile Stavracas Neto
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
Georges Basile Stavracas Neto
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
Georges Basile Stavracas Neto
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
Georges Basile Stavracas Neto
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
Georges Basile Stavracas Neto
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
Sebastian Keller
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
Sebastian Keller
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
Sebastian Keller
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
Sebastian Keller
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
Sebastian Keller
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
Carlos Garnacho
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
Jonas Ådahl
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
Jonas Ådahl
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
Jonas Ådahl
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
Jonas Ådahl
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
Jonas Ådahl
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
Jonas Ådahl
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
Bilal Elmoussaoui
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
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
Michel Dänzer
bdad097af1
Remove unused *_menu_for_rect functions
...
Unused since 84785951fd
("x11: Remove MetaX11WindowControl").
v2:
* Leave struct _MetaPluginClass::show_window_menu_for_rect, still used
by gnome-shell.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
Michel Dänzer
63a7313a1b
compositor: Fold meta_compositor_do_manage into meta_compositor_manage
...
meta_compositor_manage hasn't been public API since 4b3cab2cca
("compositor: Don't make internal API public").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
Michel Dänzer
bf53623128
Remove unused meta_clutter_x11_get_root_window declaration
...
The corresponding definition was removed in e4e0eaac9d
("clutter/backend/x11: Stop keeping track of the screen and root window").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
Michel Dänzer
b0c6864b28
Remove unused meta_stack_get/set_positions
...
Unused since 9e51d98f4a
("Remove tabpopup and friends").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3154 >
2023-08-12 19:53:46 +00:00
Bilal Elmoussaoui
f2f9e63568
build/gi: Set header & pkgconfig names
...
So that the docs generated by gi-docgen contains them
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3087 >
2023-08-12 19:34:20 +00:00
msizanoen
6b79a0bae1
cullable: Split unobscured and redraw clip region culling
...
This splits culling into two different phases to move unobscured region
culling to pre-paint to fix #2680 . This is needed as direct scanout
skips the paint phase altogether, but the pre-paint phase always runs as
it's used for selecting the direct scanout surface.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3127 >
2023-08-12 10:27:45 +00:00
Carlos Garnacho
1d6d8d45d0
clutter: Update ClutterActorClass event vmethods to use ClutterEvent
...
With the ClutterEvent subtype structs sealed, this remains the only useful
struct type that is now usable on the Javascript side. Make all
ClutterActorClass event vmethods use ClutterEvent, and update all users
to this change.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3163 >
2023-08-09 11:53:18 +00:00
Carlos Garnacho
f168866369
backends/native: Fix handling order of key event
...
First create the event with the current xkb modifier mask, then
update the xkb_state and the modifier mask. This is how it happened
before commit 2e8d839708
, and how it should stay.
Fixes: 2e8d839708
("backends/native: Port to new event constructors")
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2951
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3162 >
2023-08-09 11:36:42 +00:00
Carlos Garnacho
dc527ed510
backends/native: Close the input thread in all situations on dispose
...
In test situations we sometimes do not create a libinput context, so
our check on dispose to see if we need closing the input thread is off
if META_SEAT_NATIVE_FLAG_NO_LIBINPUT was provided.
Check the input thread existing instead, since that is the thing we
want to undo here.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:11:13 +02:00
Carlos Garnacho
ba4795a5f9
tests: Use ClutterEvent getter methods
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:11:13 +02:00
Carlos Garnacho
60aa098e94
backends/x11: Use ClutterEvent getter methods
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:11:13 +02:00
Carlos Garnacho
dbbfd03436
backends/native: Use ClutterEvent getter methods
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:11:13 +02:00
Carlos Garnacho
8f3e503c04
backends: Use ClutterEvent getter methods
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:11:13 +02:00
Carlos Garnacho
64490c3489
wayland: Use ClutterEvent getter methods
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:11:13 +02:00
Carlos Garnacho
71fb87a9f2
compositor: Use ClutterEvent getter methods
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:11:13 +02:00
Carlos Garnacho
17191d5a6c
core: Use ClutterEvent getter methods
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:11:11 +02:00
Carlos Garnacho
9dd2edac18
clutter: Add private call to describe an event
...
Move the string construction bits in the event logging happening in
MetaSeatImpl to a clutter_event_describe() call, so that it has more
freedom in fiddling with ClutterEvent internals, and may be potentially
reused in other places.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:02:54 +02:00
Carlos Garnacho
97213041e8
clutter: Add getters/arguments for missed ClutterEvent fields
...
Add methods, and change the API of some rarely used methods, in order
to make all event info currently held/necessary accessible through
ClutterEvent getters, instead of direct field access.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:02:54 +02:00
Carlos Garnacho
562c5532c4
backends/native: Rewrite event for sticky keys
...
Avoid modifying the event in place, and use a full copy with changed
modifiers, for sticky keys purposes.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:02:54 +02:00
Carlos Garnacho
2c86bff0cc
backends/x11: Drop clutter_event_set_state_full() helpers
...
Since the full decomposed modifier state is unused, and only the
effective modifier mask matters to users, the new constructors take
just this effective modifier mask. This means this helper went
unused in the port to the new constructors, so can be now dropped.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:02:54 +02:00
Carlos Garnacho
a837b105d0
backends/native: Drop clutter_event_set_state_full() helpers
...
Since the full decomposed modifier state is unused, and only the
effective modifier mask matters to users, the new constructors take
just this effective modifier mask. This means this helper went
unused in the port to the new constructors, so can be now dropped.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:02:54 +02:00
Carlos Garnacho
2e8d839708
backends/native: Port to new event constructors
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:02:54 +02:00
Carlos Garnacho
1f9e787b83
backends/x11: Use new constructor for emulated pointer events
...
Use the new constructor to generate a synthesized motion event.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:02:54 +02:00
Carlos Garnacho
75e8bab1c1
backends/x11: Use new event constructors
...
Use the new event constructors to create input events, instead
of creating them through clutter_event_new (CLUTTER_NOTHING) and
struct field fiddling.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:02:54 +02:00
Carlos Garnacho
85b13ebd18
core: Pass ClutterStage explicitly to MetaGestureTracker
...
Pass a ClutterStage argument explicitly, instead of fetching it
from the event.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:02:54 +02:00
Carlos Garnacho
77510ca72d
wayland: Avoid getting the ClutterStage through ClutterEvents
...
Fetch the ClutterStage through other means, as that field will go
away from events.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:02:54 +02:00
Carlos Garnacho
af9d406610
tests: Avoid getting the stage through ClutterEvents
...
Obtain the stage through other means, as this information will
eventually move away from events.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:02:54 +02:00
Carlos Garnacho
6fd7f95ed3
tests: Port faked events to new constructors
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:02:54 +02:00
Carlos Garnacho
c5fc9481c5
backends/x11: Drop return value from main XEvent handler
...
This return value is unchecked, and may be removed. While at it
rename the function to meta_backend_x11_handle_event().
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:00:35 +02:00
Carlos Garnacho
ca3256ee97
backends/x11: Rename function to reset X11 cached current monitor info
...
This is done from the backend X11 connection, but needs directing at times
from the frontend X11 connection. Commit 5a8509f895
added a XEvent
argument presumably for possible future expansions that did never come.
Since this function is nothing about events, drop the XEvent argument and
make the name a little bit more ad-hoc (according to what it does, at
least).
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 04:00:11 +02:00
Carlos Garnacho
d5938958c0
clutter: Drop ClutterBackend translate_event vmethod
...
Despite the attempt to make this a generic interface, this was
pretty much used only by the X11 backend, and now it ported away
from it.
This now stands unused and may be removed, in favor of backends
each creating and injecting events as they please.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 03:59:43 +02:00
Carlos Garnacho
b3d6ae34ee
backends/x11: Handle MetaSeatX11 event translation in main event handler
...
This is about the only reason now to go through the ClutterBackend
translate_event vmethod. We can do that directly, and stop requiring the
generic vmethod that is actually just used for X11 events.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 03:59:43 +02:00
Carlos Garnacho
990a50539e
backends/x11: Handle stage events from the main XEvent handler
...
This does not do any event translation, so does not need to be
handled through the translate_event() ClutterBackend vfunc.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 03:59:43 +02:00
Carlos Garnacho
830a5c0caa
backends/x11: Drop unused event time accounting in MetaClutterBackendX11
...
This has been unused for some time, by the looks of it.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 03:59:43 +02:00
Carlos Garnacho
a5519fe544
backends/x11: Drop MetaClutterBackendX11 event filters
...
These are now unused, and may be removed. Event handling in
the backend Display should happen directly from the XEvent
handler from now on.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 03:59:43 +02:00
Carlos Garnacho
def478edc8
backends/x11: Handle a11y changing XKB events together with other XKB events
...
There's no need for an XEvent filter, since this is already code close enough
to MetaBackendX11 XEvent handling and always required anyways. Make the a11y
configuration checks happen directly from MetaBackendX11 event handling.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 03:59:41 +02:00
Carlos Garnacho
0dfb5d1c31
backends/x11: Call cogl xlib event handler directly when handling XEvents
...
We are pretty much guaranteed that the first event will be handled after
the cogl renderer has been set up. We can avoid the loop through
ClutterBackend vmethods and X11 event filters, and call this directly
from the code that is already close to the MetaClutterBackendX11.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 03:58:42 +02:00
Carlos Garnacho
a08eea7f10
backends: Do not use clutter_event_[set|is]_pointer_emulated()
...
Add a new ClutterEventFlag to propagate this information, affecting
a few selected events on each backend.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153 >
2023-08-08 03:58:42 +02:00