Kirill Primak
5b08f91004
compositor: don't handle size or viewport src change in surface_update_damage()
...
This is incorrectly leads to buffer reuploading.
11 months ago
Kirill Primak
7dfbd87771
compositor: drop wlr_surface.external_damage
11 months ago
Kirill Primak
56cc25185d
cursor: fix and simplify region mapping
...
Fixes: 4462f5dcb3
11 months ago
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.
11 months ago
Andri Yngvason
3a91dc1b48
Create & implement transient seat protocol
11 months ago
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
11 months ago
Simon Ser
6991f03767
linux-dmabuf-v1: switch to stable
...
The protocol is no longer unstable.
11 months ago
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.
11 months ago
Kirill Primak
4688a371e0
compositor: don't get buffer from pending buffer resource too early
...
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3795
11 months ago
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.
11 months ago
Kirill Primak
0052078bd3
compositor: introduce wlr_surface_reject_pending()
11 months ago
Alexander Orzechowski
cca2bfbe92
output: Drop pending state
11 months ago
Simon Ser
00bb1b0f84
seat/pointer: add support for axis_relative_direction event
11 months ago
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.
11 months ago
Kirill Primak
be1c48cbfb
layer-shell: forbid set_size with values ≥INT32_MAX
11 months ago
Kirill Primak
0b090c83fb
single-pixel-buffer: send wl_buffer.release
11 months ago
Kirill Primak
58bb49a00b
security-context-v1: fix possible leaks on wl_client_create() and state copying errors
11 months ago
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.
12 months ago
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.
12 months ago
Simon Ser
ab924064f2
scene: drop wlr_scene_set_presentation()
1 year ago
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.
1 year ago
Simon Ser
1968ada213
tearing-control-v1: synchronize state with surface
1 year ago
Simon Ser
0ea6b6e2cc
session-lock-v1: use wlr_surface_synced
1 year ago
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.
1 year ago
Simon Ser
dc3b2b9439
content-type-v1: use wlr_surface_synced
1 year ago
Simon Ser
90e12fb978
pointer-constraints-v1: use wlr_surface_synced
1 year ago
Simon Ser
a6122c3ec5
layer-shell-v1: use wlr_surface_synced
1 year ago
Simon Ser
0e3d2222c2
xdg-decoration: use wlr_surface_synced for toplevel
1 year ago
Simon Ser
96aec06b0a
subcompositor: use wlr_surface_synced
1 year ago
Simon Ser
1c3c24825f
presentation-time: use wlr_surface_synced
1 year ago
Simon Ser
4b3553409a
xdg-shell: use wlr_surface_synced for popups
1 year ago
Simon Ser
9201431c29
xdg-shell: use wlr_surface_synced for toplevel
1 year ago
Simon Ser
69d9a4e2cb
xdg-shell: use wlr_surface_synced for wlr_xdg_surface
1 year ago
Simon Ser
7e1ae5548c
compositor: add wlr_surface_role.client_commit
1 year ago
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.
1 year ago
Simon Ser
34d5af4172
compositor: add wlr_surface_state_has_buffer()
1 year ago
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.
1 year ago
Simon Ser
cd157a0bd9
compositor: adjust surface_state_move() comment
1 year ago
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.
1 year ago
Simon Ser
85f44f3684
pointer-constraints-v1: add cursor_hint.enabled
...
This allows compositors to check whether the cursor hint is set.
1 year ago
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.
1 year ago
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
1 year ago
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.
1 year ago
pastel raschke
3bf9000a52
input-method-v2: validate commit serial
1 year ago
pastel raschke
6ee5bd9eee
input-method-v2: free current strings on commit
1 year ago
Simon Ser
81f5607ad9
input-method-v2: drop unnecessary variable and cast
1 year ago
Simon Ser
d7ac8c0cc1
cursor: drop unnecessary commented code
...
This is unused.
1 year ago
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
1 year ago
Simon Ser
3475b1880f
linux-dmabuf-v1: ignore scanout output for secondary DRM backends
...
We don't support direct scanout on such backends yet.
1 year ago
Simon Ser
6a2ff0dffe
compositor: drop surface precommit event
...
This is unused.
1 year ago