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
60af3b6b78
render/gles2: Fixup dropping has_alpha from pixel_format
...
Fixes: 71fb55f3
("render/pixel-format: Move has_alpha into it's own array")
2024-01-31 20:27:22 +01: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
Simon Ser
ba3c1ae065
linux-dmabuf-v1: fix include guard name
2024-01-31 08:20:17 +00:00
Kirill Primak
92ff86db23
backend/drm: use wlr_drm_backend.name for fd cloning
...
This also fixes a memleak.
2024-01-31 11:10:55 +03: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
00b869c1a9
backend/drm: add support for atomic tearing page-flips
...
The kernel patches [1] have been merged.
[1]: https://patchwork.freedesktop.org/series/120103/
2024-01-27 13:37:43 +01: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
Félix Poisot
5ae8ce807a
render/vulkan: correct sRBG gamma expansion in shader
2024-01-26 13:50:55 +00:00
Simon Ser
d1b39b5843
backend: take wl_event_loop instead of wl_display in wlr_backend_autocreate()
2024-01-25 15:05:36 +00:00
Simon Ser
f27808b8d9
backend/multi: take wl_event_loop instead of wl_display
2024-01-25 15:05:36 +00:00
Simon Ser
54f9944b48
backend/drm: drop wl_display argument
...
We can grab the event loop from the wlr_session instead.
2024-01-25 15:05:36 +00:00
Simon Ser
b62ac611c8
backend/x11: take wl_event_loop instead of wl_display
2024-01-25 15:05:36 +00:00
Simon Ser
ed0bba581b
backend/wayland: take wl_event_loop instead of wl_display
2024-01-25 15:05:36 +00:00
Simon Ser
f5e8fa48f3
backend/libinput: drop wl_display argument
...
We can grab the event loop from the wlr_session instead.
2024-01-25 15:05:36 +00:00
Simon Ser
682dbf36e5
backend/headless: take wl_event_loop instead of wl_display
2024-01-25 15:05:36 +00:00
Grigory Kirillov
0867dd4e6b
xwayland: add support for _NET_WM_WINDOW_TYPE_DESKTOP atom
2024-01-25 19:27:37 +03:00
Simon Ser
3cc4374542
backend: stop calling wl_display_terminate()
...
Leave it up to the compositor to decide what to do when a backend
becomes unavailable.
2024-01-25 14:58:00 +03:00
Simon Ser
4ad6e6c298
backend: destroy multi backend when primary backend is
...
This makes it easy for compositors to handle situations where the
DRM or libinput backend becomes unavailable. Compositors can listen
the destroy event of the multi backend returned by
wlr_backend_autocreate() and decide what to do.
2024-01-25 14:58:00 +03:00
Simon Ser
be0b7845f7
backend: make attempt_drm_backend() return the primary backend
...
We'll need this in the next commit.
2024-01-25 12:12:13 +01:00
Simon Ser
a82fc4cb8f
backend/multi: emit destroy signal before destroying child backends
...
Some users might want to destroy the multi backend when a child
backend is being destroyed. However, they can't destroy the multi
backend if it's already in the process of being destroyed.
The destroy signal was changed to be emitted after destroying child
backends in babdd6ccf7
("backend: fix use-after-free when destroying
backends"). However, this was done to accomodate for an old
"output_remove" event on backends, which has long been dropped in
favor of wlr_output.events.destroy.
This patch follows the same principle as 5d639394f3
("types/output: emit destroy event before destroying global").
2024-01-25 12:12:13 +01:00
Sarunas Valaskevicius
7c080c3b60
Fix disappearing menus in QT apps
...
A motivating example of such problem - Zoom's popups that open on button presses.
Before this fix the popup would flicker and immediately disappear - because the PID is not yet
available for the verification (as the surface has not been associated yet), wlroots would refuse to
focus the popup and instead focus the previous window. This leads QT to interpret this as a sign to
close the popup.
This change moves the PID aqcuisition to an earlier phase - just where the window is created.
2024-01-25 11:45:05 +03:00
Alexander Orzechowski
cca2bfbe92
output: Drop pending state
2024-01-24 18:46:45 +00:00
Kirill Primak
f91fc445ff
xwayland/xwm: associate even on xcb_get_property() failure
...
This matches the behavior before f5797be8a8
.
2024-01-24 12:42:18 +03:00
Simon Ser
98c708618e
backend/wayland: populate pointer axis relative direction
2024-01-23 08:37:29 +00:00
Simon Ser
7a58f41416
backend/libinput: populate pointer axis relative direction
2024-01-23 08:37:29 +00:00
Simon Ser
00bb1b0f84
seat/pointer: add support for axis_relative_direction event
2024-01-23 08:37:29 +00:00
Simon Ser
88b16bac54
pointer: add support for axis relative direction
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
Kirill Primak
d18670b922
xwayland: close pipe fds on set_cloexec() error
2024-01-17 15:44:37 +00:00
Kirill Primak
db69dcf767
backend/x11: handle touchpoint allocation failure
2024-01-17 15:44:37 +00:00
Kirill Primak
20b99ed854
render/drm_format_set: fix possible leak on realloc error
2024-01-17 15:44:37 +00:00
Kirill Primak
3eb89e5325
render/vulkan: fix possible double free
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
Kirill Primak
ce89f49b7a
tinywl: depend on the server xdg-shell header
2024-01-09 21:39:02 +03:00
MaxVerevkin
48721bca65
fix outdated comment in wlr_output.h
2024-01-07 00:03:27 +02: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
2f2a55ebd3
render: stop auto-creating wl_drm
...
wl_drm is a legacy interface superseded by the linux-dmabuf
protocol. All clients should migrate.
As a first step, stop creating the wl_drm global by default.
This should let us discover any remaining issues in clients.
Compositors can still manually create the global if they want to.
As a second step, we can completely drop our implementation.
2024-01-03 20:52:34 +00:00
Simon Ser
d0da76fbf6
wl_drm: add deprecation notice
2024-01-03 20:52:34 +00:00
Simon Ser
57d7d79982
region: add docs for wlr_region_scale_xy() and wlr_region_confine()
2024-01-03 21:19:41 +03:00