aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-02-14backend/drm: call get_drm_connector_props() when creating connectorSimon Ser
This function fetches property IDs. These don't change for the lifetime of the connector. Instead of refreshing the property IDs on hotplug (and leaving property IDs unset for disconnected connectors), only fetch the property IDs when we create the connector.
2024-02-14backend/drm: extract logic to build current connector stateSimon Ser
2024-02-14backend/drm: use early return in handle_session_active()Simon Ser
2024-02-14backend/drm: add destroy_blob()Simon Ser
Centralizes the logic to destroy a DRM blob: check whether it's zero, and print a nice error message.
2024-02-14backend/drm: drop wlr_drm_backend arg from create_mode_blob()Simon Ser
No need for this, the backend can be grabbed from the connector.
2024-02-14backend/drm: add drm_page_flip_create()Simon Ser
2024-02-14backend/drm: fix fb_damage_clips_arr memory leakSimon Ser
2024-02-13ext-foreign-toplevel-list-v1: improve/fix update_state()Kirill Primak
This extracts common string updating logic into a function and fixes a possible NULL dereference.
2024-02-12backend/drm: drop unnecessary _XOPEN_SOURCESimon Ser
We only need base POSIX here.
2024-02-12Add more POSIX compliance macros to fix uClibc supportPaul Cercueil
- Add POSIX 1993.09 compliance macro in source files that use "struct timespec"; - Add POSIX 2001.12 compliance macro in source files that use "struct sigaction" and the SA_SIGINFO macro, or the fchmod() function; - Add POSIX 2008.09 compliance macro in source files that use the getline() function. These compliance macros are enough for wlroots to compile with the git-master version of uClibc-ng. Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2024-02-12ext-foreign-toplevel-list-v1: new protocol implementationcolumbarius
This implements the new ext-foreign-toplevel-list-v1 protocol [1]. Implemented analog to the zwlr-foreign-toplevel-management-v1 implementation. The additional _ext_ in the names was added to avoid name collisions. [1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/187 Co-authored-by: Leon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de>
2024-02-06pointer-constraints: handle inert pointer resources correctlyKirill Primak
2024-02-06linux_dmabuf_v1: allow callbacks for checking dmabuf importAustin Shafer
2024-02-06xdg-shell: drop automatic surface configurationKirill Primak
Compositors now are expected to wait for an initial commit by checking wlr_xdg_surface.initial_commit on every surface commit and send (schedule) configure events manually.
2024-02-02allocator: remove backend parameter in allocator_autocreate_with_drm_fdAustin Shafer
Since we only use the backend capabilities here we can simply pass them in directly. This allows other locations to create an allocator even if they don't have a backend. They can simply specify the caps they want instead.
2024-02-02switch: add docsSimon Ser
2024-02-01backend/session: add docsSimon Ser
2024-02-01compositor: don't handle size or viewport src change in surface_update_damage()Kirill Primak
This is incorrectly leads to buffer reuploading.
2024-02-01compositor: drop wlr_surface.external_damageKirill Primak
2024-02-01cursor: fix and simplify region mappingKirill Primak
Fixes: 4462f5dcb38b8b4ddc4c1eb888aa0d0c859a10a1
2024-01-31render/gles2: Fixup dropping has_alpha from pixel_formatLeo Li
Fixes: 71fb55f3 ("render/pixel-format: Move has_alpha into it's own array")
2024-01-31render/pixel-format: Move has_alpha into it's own arrayLeo Li
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-31Create & implement transient seat protocolAndri Yngvason
2024-01-31linux-dmabuf-v1: bump to v5Simon Ser
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-31linux-dmabuf-v1: switch to stableSimon Ser
The protocol is no longer unstable.
2024-01-31linux-dmabuf-v1: fix include guard nameSimon Ser
2024-01-31backend/drm: use wlr_drm_backend.name for fd cloningKirill Primak
This also fixes a memleak.
2024-01-29wlr_damage_ring: Replace wlr_damage_ring_rotate_buffer with original list implAlexander Orzechowski
The seq based implementation is complex to reason about and doesn't even work.
2024-01-27compositor: don't get buffer from pending buffer resource too earlyKirill Primak
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3795
2024-01-27backend/drm: add support for atomic tearing page-flipsSimon Ser
The kernel patches [1] have been merged. [1]: https://patchwork.freedesktop.org/series/120103/
2024-01-27scene: release shm buffers once uploadedSimon Ser
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-27compositor: introduce wlr_surface_reject_pending()Kirill Primak
2024-01-26render/vulkan: correct sRBG gamma expansion in shaderFĂ©lix Poisot
2024-01-25backend: take wl_event_loop instead of wl_display in wlr_backend_autocreate()Simon Ser
2024-01-25backend/multi: take wl_event_loop instead of wl_displaySimon Ser
2024-01-25backend/drm: drop wl_display argumentSimon Ser
We can grab the event loop from the wlr_session instead.
2024-01-25backend/x11: take wl_event_loop instead of wl_displaySimon Ser
2024-01-25backend/wayland: take wl_event_loop instead of wl_displaySimon Ser
2024-01-25backend/libinput: drop wl_display argumentSimon Ser
We can grab the event loop from the wlr_session instead.
2024-01-25backend/headless: take wl_event_loop instead of wl_displaySimon Ser
2024-01-25xwayland: add support for _NET_WM_WINDOW_TYPE_DESKTOP atomGrigory Kirillov
2024-01-25backend: stop calling wl_display_terminate()Simon Ser
Leave it up to the compositor to decide what to do when a backend becomes unavailable.
2024-01-25backend: destroy multi backend when primary backend isSimon Ser
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-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