Kirill Primak
811ca199c4
xdg-shell: drop automatic surface configuration
...
Compositors now are expected to wait for an initial commit by checking
wlr_xdg_surface.initial_commit on every surface commit and send
(schedule) configure events manually.
2024-02-06 13:48:00 +00:00
Kirill Primak
5b08f91004
compositor: don't handle size or viewport src change in surface_update_damage()
...
This is incorrectly leads to buffer reuploading.
2024-02-01 14:51:43 +00:00
Kirill Primak
7dfbd87771
compositor: drop wlr_surface.external_damage
2024-02-01 14:51:43 +00:00
Kirill Primak
56cc25185d
cursor: fix and simplify region mapping
...
Fixes: 4462f5dcb3
2024-02-01 14:42:00 +00:00
Leo Li
71fb55f3bf
render/pixel-format: Move has_alpha into it's own array
...
Some opaque pixel formats (nv12, p010) require per-plane bytes_per_block
info. However, it doesn't make sense to store them in
wlr_pixel_format_info, as they will never be useful (currently, this
info is used for shm, which doesn't have a concept of multi-planar
buffers.)
Let's define a separate array and function for determining whether a
pixel format has alpha.
2024-01-31 13:47:17 -05:00
Andri Yngvason
3a91dc1b48
Create & implement transient seat protocol
2024-01-31 08:22:05 +00:00
Simon Ser
435ca39960
linux-dmabuf-v1: bump to v5
...
We already send a protocol error when the modifiers aren't the same
for all planes.
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/224
2024-01-31 08:20:17 +00:00
Simon Ser
6991f03767
linux-dmabuf-v1: switch to stable
...
The protocol is no longer unstable.
2024-01-31 08:20:17 +00:00
Alexander Orzechowski
8dff1bb9bd
wlr_damage_ring: Replace wlr_damage_ring_rotate_buffer with original list impl
...
The seq based implementation is complex to reason about and doesn't even
work.
2024-01-29 19:17:39 +00:00
Kirill Primak
4688a371e0
compositor: don't get buffer from pending buffer resource too early
...
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3795
2024-01-27 17:48:07 +03:00
Simon Ser
4ec901bb33
scene: release shm buffers once uploaded
...
Once a shm buffer is uploaded there's no reason for wlr_scene_buffer
to keep it locked any further. Allow the compositor to re-use it.
2024-01-27 12:21:54 +00:00
Kirill Primak
0052078bd3
compositor: introduce wlr_surface_reject_pending()
2024-01-27 12:05:05 +00:00
Alexander Orzechowski
cca2bfbe92
output: Drop pending state
2024-01-24 18:46:45 +00:00
Simon Ser
00bb1b0f84
seat/pointer: add support for axis_relative_direction event
2024-01-23 08:37:29 +00:00
Simon Ser
b80337a8f2
xdg-shell: assert that configure events carry positive or zero sizes
...
Negative values here would indicate a compositor bug. For xdg_popup,
zero values are not allowed.
2024-01-22 17:49:38 +01:00
Kirill Primak
be1c48cbfb
layer-shell: forbid set_size with values ≥INT32_MAX
2024-01-22 19:01:57 +03:00
Kirill Primak
0b090c83fb
single-pixel-buffer: send wl_buffer.release
2024-01-18 21:20:32 +03:00
Kirill Primak
58bb49a00b
security-context-v1: fix possible leaks on wl_client_create() and state copying errors
2024-01-17 15:44:37 +00:00
Isaac Freund
7129eaa1f2
keyboard: fix type of wlr_keyboard_modifiers.group
...
This isn't a breaking change since both of these typedefs are uint32_t
but this should make things a bit less confusing for readers.
2024-01-17 11:00:52 +03:00
Simon Ser
a0b1329ee6
Fix bool return types
...
This makes wlroots build in C23 mode.
C23 is more strict and rejects implicit conversions from bool to a
pointer.
2024-01-04 22:24:06 +01:00
Simon Ser
ab924064f2
scene: drop wlr_scene_set_presentation()
2023-12-27 13:41:20 +01:00
Simon Ser
d68ba9d6c2
presentation-time: drop wlr_presentation arg
...
There can only be a single presentation-time global advertised to
clients, this it's unnecessary to pass around the wlr_presentation
pointer.
2023-12-27 13:41:01 +01:00
Simon Ser
1968ada213
tearing-control-v1: synchronize state with surface
2023-12-25 18:55:30 +01:00
Simon Ser
0ea6b6e2cc
session-lock-v1: use wlr_surface_synced
2023-12-25 18:55:21 +01:00
Simon Ser
aa32d1a127
session-lock-v1: drop negative buffer size checks
...
The buffer size will never be negative, and the negative checks
are distracting from the real checks here.
2023-12-25 18:54:11 +01:00
Simon Ser
dc3b2b9439
content-type-v1: use wlr_surface_synced
2023-12-25 11:47:15 +01:00
Simon Ser
90e12fb978
pointer-constraints-v1: use wlr_surface_synced
2023-12-25 11:47:15 +01:00
Simon Ser
a6122c3ec5
layer-shell-v1: use wlr_surface_synced
2023-12-25 11:47:15 +01:00
Simon Ser
0e3d2222c2
xdg-decoration: use wlr_surface_synced for toplevel
2023-12-25 11:47:15 +01:00
Simon Ser
96aec06b0a
subcompositor: use wlr_surface_synced
2023-12-25 11:47:15 +01:00
Simon Ser
1c3c24825f
presentation-time: use wlr_surface_synced
2023-12-25 11:47:15 +01:00
Simon Ser
4b3553409a
xdg-shell: use wlr_surface_synced for popups
2023-12-25 11:47:15 +01:00
Simon Ser
9201431c29
xdg-shell: use wlr_surface_synced for toplevel
2023-12-25 11:47:15 +01:00
Simon Ser
69d9a4e2cb
xdg-shell: use wlr_surface_synced for wlr_xdg_surface
2023-12-25 11:47:15 +01:00
Simon Ser
7e1ae5548c
compositor: add wlr_surface_role.client_commit
2023-12-25 11:47:15 +01:00
Simon Ser
d847516765
compositor: add wlr_surface_synced
...
A lot of protocols extend the wl_surface state. Such protocols need
to synchronize their extended state with wl_surface.commit and
cached states. Add a new utility for this purpose.
2023-12-25 11:47:15 +01:00
Simon Ser
34d5af4172
compositor: add wlr_surface_state_has_buffer()
2023-12-25 11:47:15 +01:00
Simon Ser
66b6c349e7
compositor: remove unnecessary wlr_surface.has_buffer
...
No need to store this bit, we can infer it from buffer_width and
buffer_height.
2023-12-25 11:43:41 +01:00
Simon Ser
cd157a0bd9
compositor: adjust surface_state_move() comment
2023-12-25 11:43:41 +01:00
Simon Ser
da5f53b461
pointer-constraints-v1: reset committed on commit
...
Knowing which fields changed in the last commit is more useful than
knowing which fields were ever set on the surface.
2023-12-25 10:36:26 +00:00
Simon Ser
85f44f3684
pointer-constraints-v1: add cursor_hint.enabled
...
This allows compositors to check whether the cursor hint is set.
2023-12-25 10:36:26 +00:00
Simon Ser
df27b29d49
compositor: reset wlr_surface.current.committed on commit
...
Knowing which fields changed in the last commit is more useful than
knowing which fields were ever set on the surface.
2023-12-25 10:36:26 +00:00
Simon Ser
11e3c376e7
output-layout: fix missing global for outputs with a custom mode
...
Before we were populating wlr_output.current_mode with a generated
fixed mode when a custom mode was committed in the DRM backend. But
that's no longer the case: now a custom mode behaves the same under
the DRM backend and other backends.
wlr_output_layout was still assuming that an output without a
current_mode was disabled. Fix that assumption.
Fixes: 5567aefb1c
("backend/drm: Don't add pollute fixed modes list with custom modes")
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3743
2023-12-21 11:28:58 +01:00
Guido Günther
b032161785
input-method: Simplify resetting of input state
...
We have current and pending state and the code uses struct
assignments between them and resets and frees in multiple places.
Introduce a reset() function so we can unify that.
2023-12-18 16:21:48 +01:00
pastel raschke
3bf9000a52
input-method-v2: validate commit serial
2023-12-18 11:15:51 +01:00
pastel raschke
6ee5bd9eee
input-method-v2: free current strings on commit
2023-12-18 11:14:41 +01:00
Simon Ser
81f5607ad9
input-method-v2: drop unnecessary variable and cast
2023-12-18 11:14:08 +01:00
Simon Ser
d7ac8c0cc1
cursor: drop unnecessary commented code
...
This is unused.
2023-12-12 19:39:33 +00:00
Simon Ser
7ef62cc995
cursor: fix initial cursor position for new outputs
...
The fresh new wlr_output_cursor is positioned at (0, 0).
Call wlr_output_cursor_move() after creating the wlr_output_cursor
to fix this.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3777
2023-12-12 19:39:33 +00:00
Simon Ser
3475b1880f
linux-dmabuf-v1: ignore scanout output for secondary DRM backends
...
We don't support direct scanout on such backends yet.
2023-12-12 14:42:52 +00:00