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()).
2023-06-03 14:36:41 +00:00
Kirill Primak
49e9be62ae
subcompositor: consider mapping on parent map
...
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3654
2023-06-03 14:36:41 +00:00
Väinö Mäkelä
a2f94b500c
virtual-keyboard: Handle inert seats
2023-06-03 10:43:12 +00:00
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.
2023-06-03 10:43:12 +00:00
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.
2023-06-03 10:43:12 +00:00
Väinö Mäkelä
0601813ab6
text-input: Handle inert seats
2023-06-03 10:43:12 +00:00
Väinö Mäkelä
bcb69b1827
primary-selection: Handle inert seats
2023-06-03 10:43:12 +00:00
Väinö Mäkelä
247e86dca9
keyboard-shortcuts-inhibit: Handle inert seats
2023-06-03 10:43:12 +00:00
Väinö Mäkelä
16948c7369
input-method: Handle inert seats
2023-06-03 10:43:12 +00:00
Väinö Mäkelä
126222884d
wlr_idle: Handle inert seats
2023-06-03 10:43:12 +00:00
Väinö Mäkelä
f988a75a80
tablet: Handle inert seats
2023-06-03 10:43:12 +00:00
Väinö Mäkelä
5120addfbb
data-control: Handle inert seats
2023-06-03 10:43:12 +00:00
Väinö Mäkelä
f97f4496de
data-device: Handle inert seats
2023-06-03 10:43:12 +00:00
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.
2023-06-03 10:43:12 +00:00
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()")
2023-06-02 22:33:40 +00:00
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")
2023-06-02 22:33:40 +00:00
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.
2023-06-02 23:26:38 +03:00
Kirill Primak
e75407fd4d
session-lock: remove unused wlr_session_lock_surface_v1.events.map
2023-06-02 23:20:05 +03:00
Kirill Primak
17230d33c1
xwm: check for a buffer before mapping
2023-06-02 22:44:21 +03:00
Kirill Primak
d086ee1b9e
compositor: remove wlr_surface_role.precommit
...
It was previously used to handle unmapping properly but is obsolete now.
2023-06-02 21:04:16 +03:00
Kirill Primak
26676c8c07
xwm: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
af4181f388
drag: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
743da5c0ae
input-method: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
229abfae0c
session-lock: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
c63f3659c5
layer-shell: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
b0437fc416
xdg-shell: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
c590bb600f
subcompositor: use unified map logic
2023-06-02 17:26:18 +00:00
Kirill Primak
6b40e08148
compositor: introduce unified map logic
2023-06-02 17:26:18 +00:00
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
2023-06-02 16:27:54 +00:00
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.
2023-06-02 16:27:54 +00:00
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.
2023-06-02 15:54:25 +00:00
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
2023-06-02 15:54:25 +00:00
Simon Ser
beb820b573
render/vulkan: improve error handling in vulkan_begin_render_pass()
...
Release the command buffer if we end up not submitting it.
2023-06-01 10:42:56 +02:00
Simon Ser
0ba3ea3bcd
render/vulkan: improve error handling in render_pass_submit()
...
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3644
2023-06-01 10:42:56 +02:00
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.
2023-05-31 22:37:12 +00:00
Simon Ser
ba276e5ac2
render/vulkan: handle vulkan_record_stage_cb() failures
2023-05-31 19:40:59 +00:00
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.
2023-05-31 00:08:49 +00:00
Simon Ser
5bcd537ff4
output/cursor: use new rendering API
2023-05-30 16:18:19 +00:00
Simon Ser
8e81b4bb42
examples: convert to new rendering API
...
Left out multi-pointer (will be removed) and quads (requires
arbitrary rotation).
2023-05-30 16:18:19 +00:00
Simon Ser
8fe29e6bd1
backend/drm: use new rendering API
2023-05-30 16:18:19 +00:00
Simon Ser
93a6acae9f
output: add wlr_output_begin_render_pass()
2023-05-30 16:18:19 +00:00
Alexander Orzechowski
95062904c7
wlr_scene: Introduce wlr_scene_buffer_set_opacity
2023-05-30 15:43:29 +00:00
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
2023-05-30 15:40:41 +00:00
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.
2023-05-30 15:40:41 +00:00
Alexander Orzechowski
61c157269e
wlr_scene: Add documentation to wlr_scene_buffer_from_node
2023-05-30 15:40:41 +00:00
Simon Ser
e07c77f846
render/vulkan: implement render pass API
2023-05-30 09:42:19 +00:00
Alexander Orzechowski
8af00d5534
renderer/gles2: Implement render pass interface
2023-05-28 14:53:34 -04:00
Alexander Orzechowski
b1d26ed47b
renderer/gles2: Compute texture coordinates based off of vertex positions
2023-05-28 14:53:34 -04:00
Alexander Orzechowski
45b2a8eee2
renderer/gles2: Merge get_buffer and create_buffer
2023-05-28 14:53:34 -04:00
Alexander Orzechowski
6f67bfe5ab
renderer/gles2: Interpret matrix as column major in shader
...
Avoids us needing to transpose.
2023-05-28 14:53:34 -04:00