Age | Commit message (Collapse) | Author |
|
This makes seat_client resources inert when seats and/or input devices are
destroyed, rather than destroying the resources.
When the client calls e.g. wl_keyboard_release(), it's not expecting the
keyboard global to be already destroyed, so this results in an error such
as this:
wl_display@1: error 0: invalid object 22
|
|
|
|
Fixes: #3636
|
|
We were doing it too late before and surfaces were never getting
the presentation event.
|
|
References: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/220
|
|
References: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/220
|
|
This allows wlroots to support newer versions of the interface
without breaking the API.
|
|
|
|
|
|
|
|
Setting the GLESv2 parameter GL_PACK_ALIGNMENT to 1 ensures that the
stride of the glReadPixels output matches the value computed in
`pack_stride`. Since the default value of GL_PACK_ALIGNMENT is 4, this
does not make a difference under normal use; but without this patch
the stride can be incorrect; for example, with RGB565 buffers and
screenshots of regions with odd width.
|
|
Adjust the code style for wlroots, and use calloc() for structs.
|
|
|
|
Compositors can migrate to wlr_damage_ring.
|
|
wlr_output is not well-suited to checking whether direct scan-out
is happening or not. Compositors may want to use their own external
swapchains, for instance.
Additionally, ab7eabac8433 ("output: leverage
wlr_output_configure_primary_swapchain()") makes it so
output_basic_test() is called before the output swapchain is
initialized, resulting in false positives.
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3620
|
|
|
|
This lets compositors check whether direct scan-out is possible.
Compositors will soon be responsible for manually calling this
function.
|
|
This allows callers to set a destination size different from the
buffer size to scale them.
The DRM backend supports this. The Wayland backend doesn't yet
(we'd need to wire up viewporter).
|
|
|
|
|
|
|
|
The will be used by the Wayland backend to figure out whether
updating sub-surface position is necessary.
|
|
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3610
|
|
|
|
since wayland doesn't provide a touch id in cancel events, track what
points are active so we can cancel all of them
timestamp is also not provided - use 0 because no one's paying attention
to that anyway
Closes #3000
|
|
Helps figuring out why e.g. get_primary_formats fails.
|
|
Amend b7e9ad79 to remove wlr_wl_input_device_get_seat definition.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3611
|
|
|
|
|
|
|
|
- Simplifies the backends
- Avoids having two ways to do the same thing: previously one could
disable a layer by either omitting it from wlr_output_state.layers,
or by passing a NULL buffer
- We can change our mind in the future: we can allow users to omit
some layers and define a meaning without breaking the API.
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4017#note_1783997
|
|
|
|
|
|
|
|
|
|
The surfaces are stored in the bottom-to-top order, as specified
in include/xwayland/xwm.h and expected by
wlr_xwayland_surface_restack().
|
|
Allocate resources only after checking the request.
|
|
When a new client comes in and tries to create a
zwlr_gamma_control_v1 object for an output which already has one,
we were destroying the old object and early-returning. The early
return causes the new object to not be set up properly: it's not
inserted in the list and doesn't get the gamma_size event.
Fix this by destroying the new object, and leave the old object
intact, which is what was the intent I think.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3605
|
|
This fixes e.g. accessing grabbed_view on a toplevel unmap if no
toplevel was grabbed before.
|
|
The current validation doesn't catch some invalid values such as 3 or 7.
|
|
Fix a few globals which weren't properly cleaned up. Discovered
in [1].
[1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3604
|
|
Just like _WLR_FILENAME and _WLR_ATTRIB_PRINTF, this makes it more
obvious that this isn't part of our API.
|
|
Don't leak these.
|
|
|
|
|
|
Instead of returning a primary node from wlr_renderer_get_drm_fd(),
prefer to return a render node if any.
|
|
Fixes the following error:
../examples/dmabuf-capture.c:524:33: error: 'frame_number' is deprecated [-Werror=deprecated-declarations]
524 | ctx->avctx->frame_number, get_fifo_size(&ctx->vid_frames));
| ^~~
|
|
Instead of littering #ifdefs everywhere, move them to the dedicated
attempt_XXX_backend() functions. This makes the logic in
wlr_backend_autocreate() more readable, and provides better error
messages when the X11/Wayland backends are disabled at compile-time,
or when WLR_BACKENDS contains a backend disabled at compile-time.
|
|
When we change the required dependencies for the DRM backend,
Meson might auto-disable the backend for users missing the new
requirements. This results in confused users [1] because they don't
notice the "drm-backend: NO" line burried in the Meson logs, and
then get a black screen when starting the compositor.
Update wlr_backend_autocreate() to refuse to create a backend with
only libinput (without DRM).
Users really wanting to start their compositor with a libinput
backend and without a DRM backend can manually set WLR_BACKENDS.
[1]: https://github.com/swaywm/sway/issues/7457
|
|
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3600
|