Kenny Levinsen
15f2f6642f
gamma-control: Read ramps using pread
...
read advances the file description offset, and requires the client to
ensure that it is reset appropriately before the next gamma ramp
submission. As there is no event to indicate that wlroots finished
processing the new gamma ramp, this can result in a race between the
client seeking in the file and wlroots reading its content.
Use pread with a fixed offset instead.
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3655
1 year ago
Kirill Primak
b61d5922f1
compositor: notify subsurfaces about a commit in the rendering order
...
This is the default order used across wlroots unless the reversed order
specifically is required (e.g. in wlr_surface_surface_at()).
1 year ago
Kirill Primak
49e9be62ae
subcompositor: consider mapping on parent map
...
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3654
1 year ago
Väinö Mäkelä
a2f94b500c
virtual-keyboard: Handle inert seats
1 year ago
Väinö Mäkelä
f9f17b6236
virtual-pointer: Handle inert seats
...
Inert seats are handled like inert outputs, so they work as if the
wanted seat was NULL. The seat argument is only a suggestion, so this
is okay.
1 year ago
Väinö Mäkelä
07e27ba854
xdg-popup: Handle inert seats
...
According to the protocol text, the popup will be immediately dismissed
when the grab is rejected. Because the grab can't be executed with a
destroyed seat, the popup is dismissed when one is provided.
1 year ago
Väinö Mäkelä
0601813ab6
text-input: Handle inert seats
1 year ago
Väinö Mäkelä
bcb69b1827
primary-selection: Handle inert seats
1 year ago
Väinö Mäkelä
247e86dca9
keyboard-shortcuts-inhibit: Handle inert seats
1 year ago
Väinö Mäkelä
16948c7369
input-method: Handle inert seats
1 year ago
Väinö Mäkelä
126222884d
wlr_idle: Handle inert seats
1 year ago
Väinö Mäkelä
f988a75a80
tablet: Handle inert seats
1 year ago
Väinö Mäkelä
5120addfbb
data-control: Handle inert seats
1 year ago
Väinö Mäkelä
f97f4496de
data-device: Handle inert seats
1 year ago
Väinö Mäkelä
0e5f76186e
seat: Allow binding to inert seats
...
If a seat is destroyed while a client is trying to bind it, wlroots
needs to create an inert seat resource instead of crashing.
1 year ago
Simon Ser
52b93f7eb4
output/cursor: fix scale and transform
...
Many issues here:
- wlr_output_cursor_set_buffer() takes a buffer already scaled for
the output, not a buffer with scale=1.
- wlr_output_cursor.{width,height,hotspot_x,hotspot_y} are in output
buffer coordinates.
- render_cursor_buffer() had hardcoded no-ops for scale and
transform, instead of using the cursor surface's.
Fixes: b64e7e88bf
("output: add output_cursor_set_texture()")
1 year ago
Simon Ser
09c87cec3f
cursor: fix wl_pointer.set_cursor hotspot updates
...
A client might update the cursor with the same wl_surface as
before, but with a different hotspot. Don't ignore such updates.
Fixes: 9c9e3f6263
("cursor: ignore wlr_cursor_set_surface() with same surface")
1 year ago
Kirill Primak
8c0eeb6a86
session-lock: fix buffer check
...
If the first commit has no buffer, the unmap hook won't catch it. Check
in the commit hook instead.
1 year ago
Kirill Primak
e75407fd4d
session-lock: remove unused wlr_session_lock_surface_v1.events.map
1 year ago
Kirill Primak
17230d33c1
xwm: check for a buffer before mapping
1 year ago
Kirill Primak
d086ee1b9e
compositor: remove wlr_surface_role.precommit
...
It was previously used to handle unmapping properly but is obsolete now.
1 year ago
Kirill Primak
26676c8c07
xwm: use unified map logic
1 year ago
Kirill Primak
af4181f388
drag: use unified map logic
1 year ago
Kirill Primak
743da5c0ae
input-method: use unified map logic
1 year ago
Kirill Primak
229abfae0c
session-lock: use unified map logic
1 year ago
Kirill Primak
c63f3659c5
layer-shell: use unified map logic
1 year ago
Kirill Primak
b0437fc416
xdg-shell: use unified map logic
1 year ago
Kirill Primak
c590bb600f
subcompositor: use unified map logic
1 year ago
Kirill Primak
6b40e08148
compositor: introduce unified map logic
1 year ago
Simon Ser
6668c822b3
cursor: unset wlr_output_cursor.texture on surface destroy
...
When the surface is destroyed, its current wlr_texture is about to
get destroyed as well. Reset wlr_output_cursor.texture to prevent
use-after-free.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3652
1 year ago
Simon Ser
9c9e3f6263
cursor: ignore wlr_cursor_set_surface() with same surface
...
Avoids damaging the output and rendering the cursor again if it
hasn't changed.
1 year ago
Kirill Primak
75d03f2b68
xwm: introduce associate/dissociate events
...
We'll soon introduce a unified wlr_surface map event. Up until now, compositors
have been using wlr_xwayland_surface's map event to setup various wlr_surface
related listeners (e.g. commit). This will no longer be possible when that
event is moved over to wlr_surface. Introduce new events where the compositor
can add/remove wlr_surface event listeners.
1 year ago
Kirill Primak
2d6a09d9f0
Revert "xwm: emit new_surface/destroy on associate/dissociate"
...
Firing new_surface when a wlr_surface is associated to the X11 window is too
late: the X11 client might've sent configure events before that.
This reverts commit 039cca8a51
.
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3606
1 year ago
Simon Ser
beb820b573
render/vulkan: improve error handling in vulkan_begin_render_pass()
...
Release the command buffer if we end up not submitting it.
2 years ago
Simon Ser
0ba3ea3bcd
render/vulkan: improve error handling in render_pass_submit()
...
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3644
2 years ago
Simon Ser
30aca4df0d
backend/drm: introduce wlr_drm_mode_get_info()
...
This allows compositors to get back the raw drmModeModeInfo and
look at DRM-specific fields and flags.
2 years ago
Simon Ser
ba276e5ac2
render/vulkan: handle vulkan_record_stage_cb() failures
2 years ago
Simon Ser
3f0487d310
backend/drm: move forward decl up for drmModeModeInfo
...
This allows doc generators to properly associate the doc comment
with the function instead of the typedef.
2 years ago
Simon Ser
5bcd537ff4
output/cursor: use new rendering API
2 years ago
Simon Ser
8e81b4bb42
examples: convert to new rendering API
...
Left out multi-pointer (will be removed) and quads (requires
arbitrary rotation).
2 years ago
Simon Ser
8fe29e6bd1
backend/drm: use new rendering API
2 years ago
Simon Ser
93a6acae9f
output: add wlr_output_begin_render_pass()
2 years ago
Alexander Orzechowski
95062904c7
wlr_scene: Introduce wlr_scene_buffer_set_opacity
2 years ago
Alexander Orzechowski
2346b90a9f
wlr_scene: Make scene_rect_from_node public
...
This is in an effort to be more consistent with both already public
getters: wlr_scene_buffer_from_node and wlr_scene_tree_from_node
2 years ago
Alexander Orzechowski
88f80c4a7c
wlr_scene: Make scene_tree_from_node public
...
This is to allow for compositors that want to be more implicit about
how their scene is organized. Such a compositor may want to walk up
at a certain scene node to find something such as a surface to focus on.
2 years ago
Alexander Orzechowski
61c157269e
wlr_scene: Add documentation to wlr_scene_buffer_from_node
2 years ago
Simon Ser
e07c77f846
render/vulkan: implement render pass API
2 years ago
Alexander Orzechowski
8af00d5534
renderer/gles2: Implement render pass interface
2 years ago
Alexander Orzechowski
b1d26ed47b
renderer/gles2: Compute texture coordinates based off of vertex positions
2 years ago
Alexander Orzechowski
45b2a8eee2
renderer/gles2: Merge get_buffer and create_buffer
2 years ago