aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2021-01-20Expose ICCCM input statusBrassyPanache
In certain situations windows can have their input field set to false but still expect to receive input focus by passively listening to key presses via a parent window. The ICCCM specification outlines how focus should be given to clients. Further reading: https://tronche.com/gui/x/icccm/sec-4.html#s-4.1.7 Relates to #2604
2021-01-18backend/x11: set a blank cursor rather than hiding globallyIlia Mirkin
This actually simplifies the logic since we no longer have to wait for enter/leave events, and also improves the UX when e.g. handling a crash with gdb attached. See #2659
2021-01-17backend/drm: add wlr_drm_connector_get_idSimon Ser
This allows a compositor to get a KMS connector object ID from a wlr_output. The compositor can then query more information about the connector via libdrm. This gives more freedom to compositors and allows them to read KMS properties that wlroots doesn't know about. For instance, they could read the EDID or the suggested_{X,Y} properties and change their output configuration based on that.
2021-01-17backend/drm: add support for the subconnector propertySimon Ser
The subconnector property indicates the connector sub-type. This is useful because that usually indicates what kind of connector the user has plugged in to their monitor, e.g. a DisplayPort-to-DVI cable will indicate a DVI subconnector. Also some laptops have non-DP connectors that are internally linked to a DP port on the GPU. Set the output description accordingly. See https://drmdb.emersion.fr/properties/3233857728/subconnector
2021-01-17backend/x11: add support for DRI3 1.0Simon Ser
Add fallbacks when DRI3 1.2 isn't supported. Closes: https://github.com/swaywm/wlroots/issues/2586
2021-01-16render: introduce private wlr_renderer_autocreate_with_drm_fdSimon Ser
2021-01-16output-damage: stop relying on output pending state on commitSimon Ser
References: https://github.com/swaywm/wlroots/issues/2098
2021-01-16render: remove egl include from wlr_rendererSimon Zeni
2021-01-16render: drop egl parameters from wlr_renderer_autocreateSimon Zeni
2021-01-16backend/headless: implement get_drm_fdSimon Ser
2021-01-16backend/x11: implement get_drm_fdSimon Ser
2021-01-16backend/wayland: implement get_drm_fdSimon Ser
2021-01-16backend: add get_drm_fd to interfaceSimon Ser
This function allows backends to return the DRM FD they are using. This will allow the allocator and the renderer to use the right device.
2021-01-15render/gbm_allocator: fix gbm_device use-after-freeSimon Ser
We need to destroy any gbm_bo we've created before gbm_device_destroy. Closes: https://github.com/swaywm/wlroots/issues/2601
2021-01-15render/gbm_allocator: document that DRM primary FDs workSimon Ser
2021-01-15output: remove scale/transform eventsSimon Ser
Instead, the commit event should be used.
2021-01-15output-damage: stop listening to scale/transform eventsSimon Ser
Only listen to the commit event.
2021-01-14render: document wlr_renderer_bind_bufferSimon Ser
2021-01-12layer-shell: allow new values for keyboard-interactivityDaniel Kondor
Value is now an enum with a new value ("on-demand") that compositors can use to allow "normal" keyboard focus semantics regardless of the layer the client surface is on. An error is sent for invalid keyboard interactivity values. The old behavior is retained for clients using the previous version of the protocol. Also adjusted the layer-shell example program to use the new keyboard interactivity options.
2021-01-12render/egl: remove surface and buffer age args from make_currentSimon Ser
These aren't used anymore.
2021-01-12render/egl: replace init/finish with create/destroySimon Ser
This ensures wlr_gles2_renderer can properly take ownership of the wlr_egl. Closes: https://github.com/swaywm/wlroots/issues/2612
2021-01-12render/egl: remove wlr_egl_swap_buffersSimon Ser
2021-01-12render/egl: remove support for EGL_NATIVE_VISUAL_IDSimon Ser
Nobody uses it anymore.
2021-01-12layer shell: rename popup iterator for consistencyIsaac Freund
This iterates over the subsurfaces of popups as well, so rename it to match wlr_xdg_surface_for_each_popup_surface().
2021-01-12xdg shell: remove wlr_xdg_surface_for_each_popup()Isaac Freund
This function is inferior to wlr_xdg_surface_for_each_popup_surface() for rendering as it does not iterate over subsurfaces. Furthermore, no compositor is known to use this to iterate popups for any purpose other than rendering. Therefore remove the function, which may of course be reintroduced at a later date if a use-case is found.
2021-01-10output-management: use same types as wlr_outputIsaac Freund
This is more correct and also makes things much nicer for languages that don't allow implicit conversions between these types.
2021-01-10backend/wayland: use the EGL GBM platformSimon Ser
Just like other backends, use the EGL GBM platform. This will make it easier to move the allocator and renderer initialization out of the backends.
2021-01-10backend/drm: re-use FBsSimon Ser
Instead of importing buffers to GBM and KMS at each frame, cache them and re-use them while the wlr_buffer is alive. This is the same as [1] and [2] but for the DRM backend. [1]: https://github.com/swaywm/wlroots/pull/2538 [2]: https://github.com/swaywm/wlroots/pull/2539
2021-01-10backend/drm: only keep track of local bufferSimon Ser
Stop keeping track of buffers on the parent GPU when multi-GPU is used. This removes support for export_dmabuf on secondary GPUs, but renderer v6 will bring this back by managing the swapchains in wlr_output instead of the backends.
2021-01-10backend/drm: add wlr_drm_buf.local_wlr_bufSimon Ser
2021-01-10backend/drm: introduce drm_fb_createSimon Ser
2021-01-10backend/drm: make wlr_drm_plane.{pending,queued,current}_fb pointersSimon Ser
This will be useful once we start re-using wlr_drm_fb.
2021-01-09render/egl: document NULL config_attribs passed to wlr_egl_initSimon Ser
2021-01-09render/egl: use KHR function pointer typeSimon Ser
KHR is more "core" than EXT.
2021-01-09render/egl: document that config may be zeroSimon Ser
2021-01-08layer shell: add wlr_layer_surface_v1_popup_surface_at()Isaac Freund
This function will allow compositors to implement input handling in a way consistent with rendering more easily. Calling wlr_layer_surface_v1_surface_at() and checking if the result is a wlr_xdg_popup is flawed as there may be subsurfaces in the popup tree.
2021-01-08xdg shell: add wlr_xdg_surface_popup_surface_at()Isaac Freund
This function will allow compositors to implement input handling in a way consistent with rendering more easily. Calling wlr_xdg_surface_surface_at() and checking if the result is a wlr_xdg_popup is flawed as there may be subsurfaces in the popup tree.
2021-01-08xdg shell: add wlr_xdg_surface_for_each_popup_surface()Isaac Freund
When rendering, it is necessary to iterate the subsurfaces as well, so add a function that makes this easy.
2021-01-07xdg shell: make unconstrain_from_box arg constIsaac Freund
2021-01-07remove unnecessary egl includesSimon Zeni
2021-01-07backend: remove wlr_egl from all backendsSimon Zeni
2021-01-07types/seat: Clear focus in wlr_seat_destroy()Andri Yngvason
This fixes use-after-free in surface destroy signal listeners.
2021-01-06render: remove EGL config and visual from wlr_renderer_autocreateSimon Ser
This isn't used anymore by any backend. Some examples still provide an EGL config to wlr_egl_init, so we can't drop it yet there.
2021-01-05types: add wlr_xdg_foreign_v2Ilia Bozhinov
Co-authored-by: Jason Francis <cycl0ps@tuta.io>
2021-01-05types: add wlr_xdg_foreign_v1Ilia Bozhinov
Co-authored-by: Jason Francis <cycl0ps@tuta.io>
2021-01-05types: add wlr_xdg_foreign_registryIlia Bozhinov
2021-01-05xdg-shell: add wlr_xdg_toplevel_set_parentIlia Bozhinov
Co-authored-by: Jason Francis <cycl0ps@tuta.io>
2021-01-05util: add support for generating UUIDsIlia Bozhinov
Co-authored-by: Jason Francis <cycl0ps@tuta.io>
2021-01-05docs: wlr_surface_from_resource cannot return NULLIsaac Freund
Surfaces never become inert.
2021-01-04backend/session: allow wlr_session_find_gpus to return an errorSimon Ser
Sometimes wlr_session_find_gpus will encounter an error. This is different from finding zero GPUs. On error, wlr_session_find_gpus already returns -1. However, this is casted to size_t, so callers uncorrectly assume this is a success. Instead, make wlr_session_find_gpus return a ssize_t and allow callers to handle the error accordingly.