aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-01-25backend: make attempt_drm_backend() return the primary backendSimon Ser
We'll need this in the next commit.
2024-01-25backend/multi: emit destroy signal before destroying child backendsSimon Ser
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 babdd6ccf757 ("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 5d639394f3e8 ("types/output: emit destroy event before destroying global").
2024-01-25Fix disappearing menus in QT appsSarunas Valaskevicius
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-24output: Drop pending stateAlexander Orzechowski
2024-01-24xwayland/xwm: associate even on xcb_get_property() failureKirill Primak
This matches the behavior before f5797be8a8d410e22fa6397b2217a6a81858d05c.
2024-01-23backend/wayland: populate pointer axis relative directionSimon Ser
2024-01-23backend/libinput: populate pointer axis relative directionSimon Ser
2024-01-23seat/pointer: add support for axis_relative_direction eventSimon Ser
2024-01-23pointer: add support for axis relative directionSimon Ser
2024-01-22xdg-shell: assert that configure events carry positive or zero sizesSimon Ser
Negative values here would indicate a compositor bug. For xdg_popup, zero values are not allowed.
2024-01-22layer-shell: forbid set_size with values ≥INT32_MAXKirill Primak
2024-01-18single-pixel-buffer: send wl_buffer.releaseKirill Primak
2024-01-17security-context-v1: fix possible leaks on wl_client_create() and state ↵Kirill Primak
copying errors
2024-01-17xwayland: close pipe fds on set_cloexec() errorKirill Primak
2024-01-17backend/x11: handle touchpoint allocation failureKirill Primak
2024-01-17render/drm_format_set: fix possible leak on realloc errorKirill Primak
2024-01-17render/vulkan: fix possible double freeKirill Primak
2024-01-17keyboard: fix type of wlr_keyboard_modifiers.groupIsaac Freund
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-09tinywl: depend on the server xdg-shell headerKirill Primak
2024-01-07fix outdated comment in wlr_output.hMaxVerevkin
2024-01-04Fix bool return typesSimon Ser
This makes wlroots build in C23 mode. C23 is more strict and rejects implicit conversions from bool to a pointer.
2024-01-03render: stop auto-creating wl_drmSimon Ser
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-03wl_drm: add deprecation noticeSimon Ser
2024-01-03region: add docs for wlr_region_scale_xy() and wlr_region_confine()Simon Ser
2023-12-30backend/drm: save current refresh rateSimon Ser
wlr_output.refresh is populated by core wlr_output, and thus will be zero for a custom mode with an unset refresh rate. Save the refresh rate from the drmModeModeInfo in wlr_drm_connector instead. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3791
2023-12-27scene: drop wlr_scene_set_presentation()Simon Ser
2023-12-27presentation-time: drop wlr_presentation argSimon Ser
There can only be a single presentation-time global advertised to clients, this it's unnecessary to pass around the wlr_presentation pointer.
2023-12-25tearing-control-v1: synchronize state with surfaceSimon Ser
2023-12-25session-lock-v1: use wlr_surface_syncedSimon Ser
2023-12-25session-lock-v1: drop negative buffer size checksSimon Ser
The buffer size will never be negative, and the negative checks are distracting from the real checks here.
2023-12-25content-type-v1: use wlr_surface_syncedSimon Ser
2023-12-25pointer-constraints-v1: use wlr_surface_syncedSimon Ser
2023-12-25layer-shell-v1: use wlr_surface_syncedSimon Ser
2023-12-25xdg-decoration: use wlr_surface_synced for toplevelSimon Ser
2023-12-25subcompositor: use wlr_surface_syncedSimon Ser
2023-12-25presentation-time: use wlr_surface_syncedSimon Ser
2023-12-25xdg-shell: use wlr_surface_synced for popupsSimon Ser
2023-12-25xdg-shell: use wlr_surface_synced for toplevelSimon Ser
2023-12-25xdg-shell: use wlr_surface_synced for wlr_xdg_surfaceSimon Ser
2023-12-25compositor: add wlr_surface_role.client_commitSimon Ser
2023-12-25compositor: add wlr_surface_syncedSimon Ser
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.
2023-12-25compositor: add wlr_surface_state_has_buffer()Simon Ser
2023-12-25compositor: fix wlr_surface_has_buffer() doc commentSimon Ser
The function does not check whether the upload succeeded: it does not check the wlr_client_buffer.
2023-12-25compositor: remove unnecessary wlr_surface.has_bufferSimon Ser
No need to store this bit, we can infer it from buffer_width and buffer_height.
2023-12-25compositor: adjust surface_state_move() commentSimon Ser
2023-12-25pointer-constraints-v1: reset committed on commitSimon Ser
Knowing which fields changed in the last commit is more useful than knowing which fields were ever set on the surface.
2023-12-25pointer-constraints-v1: add cursor_hint.enabledSimon Ser
This allows compositors to check whether the cursor hint is set.
2023-12-25compositor: reset wlr_surface.current.committed on commitSimon Ser
Knowing which fields changed in the last commit is more useful than knowing which fields were ever set on the surface.
2023-12-21backend: fix build against upcoming `gcc-14` (`-Werror=calloc-transposed-args`)Sergei Trofimovich
`gcc-14` added a new `-Wcalloc-transposed-args` warning recently. It detected minor infelicity in `calloc()` API usage in `wlroots`: ../backend/libinput/tablet_pad.c: In function 'add_pad_group_from_libinput': ../backend/libinput/tablet_pad.c:36:38: error: 'calloc' sizes specified with 'sizeof' in the earlier argument and not in the later argument [-Werror=calloc-transposed-args] 36 | group->rings = calloc(sizeof(unsigned int), group->ring_count); | ^~~~~~~~ ../backend/libinput/tablet_pad.c:36:38: note: earlier argument should specify number of elements, later size of each element
2023-12-21output-layout: fix missing global for outputs with a custom modeSimon Ser
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: 5567aefb1c56 ("backend/drm: Don't add pollute fixed modes list with custom modes") Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3743