aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2019-06-30wlr_tablet_v2: Register event serialsManuel Stoeckl
2019-06-30wlr_seat: Fix edge cases with serial validationManuel Stoeckl
2019-06-30Implement serial validation for selection requestsManuel Stoeckl
This change tracks, for each wlr_seat_client, the most recent serial numbers which were sent to the client. When the client makes a selection request, wlroots now verifies that the serial number associated with the selection request was actually provided to that specific client. This ensures that the client that was most recently interacted with always has priority for its copy selection requests, and that no other clients can incorrectly use a larger serial value and "steal" the role of having the copy selection. Also, the code used to determine when a given selection is superseded by a newer request uses < instead of <= to allow clients to make multiple selection requests with the same serial number and have the last one hold. To limit memory use, a ring buffer is used to store runs of sequential serial numbers, and all serial numbers earlier than the start of the ring buffer are assumed to be valid. Faking very old serials is unlikely to be disruptive. Assuming all clients are correctly written, the only additional constraint which this patch should impose is that serial numbers are now bound to seats: clients may not receive a serial number from an input event on one seat and then use that to request copy-selection on another seat.
2019-06-24virtual_keyboard: Require keymap before accepting keycodesDorota Czaplejewicz
2019-06-22backend/drm: Simplify object matching codeScott Anderson
We originally used match_obj on planes, but this was largely unnecessary. Instead, this assigns planes statically at startup.
2019-06-21Support pointer-gestures on Wayland backendGreg V
2019-06-16output: remove wlr_output_impl.transformSimon Ser
The backend doesn't need to handle transform changes, since everything is done in software. In fact, all of the implementations were all identical and just set the transform. We could add support for hardware transforms, but: - This would require a different field (something like hardware_transform) - Not all combinations are possible because there often are hardware limitations - The Wayland protocol isn't ready for this (in particular xdg-output, see [1]) This belongs to a different patch series anyway. [1]: https://patchwork.freedesktop.org/series/52324/
2019-06-16Use a set to track pointer button state.Ashkan Kiani
In addition to `button_count`, we keep track of the current buttons pressed just as in `wlr_keyboard`. Add `set_add` and `set_remove` to assist with this. These functions can only be used with values greater than 0 (such as the button/key masks for keyboards and pointers). Partially addresses: - https://github.com/swaywm/wlroots/issues/1716 - https://github.com/swaywm/wlroots/issues/1593
2019-06-07backend/drm: fallback to drmModeAddFB2Simon Ser
2019-06-07output: introduce wlr_output_lock_attach_renderSimon Ser
This allows screen shooters and screen grabbers to ensure rendering will be used instead of direct scan-out.
2019-06-07backend/drm: hold buffers while scanning outSimon Ser
2019-06-07output: fix attach_buffer semanticsSimon Ser
2019-06-07output: change set_dmabuf to attach_bufferSimon Ser
2019-06-07buffer: add wlr_buffer_get_dmabufSimon Ser
2019-06-07render/dmabuf: add wlr_dmabuf_attributes_copySimon Ser
2019-06-07backend/drm: check format when scanning out DMA-BUFSimon Ser
2019-06-07backend/drm: add basic support for direct scan-outemersion
2019-06-02Remove orbital screenshooter and gamma-controlSimon Ser
These are undocumented, outdated protocols that have a better wlr-protocols equivalent.
2019-05-06backend/wayland: remove wl_shmSimon Ser
We bind to it but never use it.
2019-05-06backend/wayland: use xdg-decoration-unstable-v1Simon Ser
This allows the toplevel to have proper decorations on compositors that support xdg-decoration-unstable-v1.
2019-04-29rootston: add support for foreign-toplevel fullscreeningIlia Bozhinov
2019-04-29foreign-toplevel: support fullscreen state and requestIlia Bozhinov
2019-04-27output: introduce wlr_output_schedule_doneSimon Ser
This commit introduces wlr_output_schedule_done and refactors the mechanism used to send wl_output events to clients. wlr_output_schedule_done schedules a wl_output.done event. This allows clients to see wlr_output property changes as atomic. This function is also useful for add-on interfaces like xdg_output which need to trigger a wl_output.done event to apply their new state.
2019-04-26output: disambiguate the two types of damageSimon Ser
See https://github.com/swaywm/wlroots/issues/1665
2019-04-26Remove wlr_wl_shellDrew DeVault
2019-04-23output: rename needs_commit to needs_frameSimon Ser
This new name makes more sense, since it is a request from the backend to get a new frame. In the future a commit may not convey a new frame.
2019-04-23output-damage: refactor APISimon Ser
wlr_output_damage_make_current has been renamed to wlr_output_damage_attach_render, since it's just a wrapper for wlr_output_attach_render. wlr_output_damage_swap_buffers has been removed completely. Instead, wlr_output_damage now listens to successful wlr_output commits and updates its internal state accordingly.
2019-04-23output: rename swap_buffers event to precommitSimon Ser
Also remove damage from the event data since it's no longer tied to commits.
2019-04-23output: refactor backend APISimon Ser
This updates the backend part of the output API. This is mostly renaming: make_current becomes attach_render and swap_buffers becomes commit. This also fixes the RDP backend to support NULL damage.
2019-04-23output: refactor frame submission APISimon Ser
This is necessary for direct scan-out and other upcoming features. This patch changes the output API to look like the wl_surface API. Outputs now have some double-buffered state: the frame to be submitted (currently only wlr_renderer frames are supported) and the damaged region. To attach a pending frame, use wlr_output_attach_render. To set the pending damaged region, use wlr_output_set_damage. To submit the pending state, call wlr_output_commit. This will submit the pending frame to the backend. To migrate from the old API to the new one: - Replace wlr_output_make_current calls by wlr_output_attach_render - Replace wlr_output_swap_buffers calls by wlr_output_set_damage and wlr_output_commit
2019-04-22output: introduce wlr_output_preferred_modeSimon Ser
2019-04-22Fix missing headers when building without X11Alyssa Ross
The deleted includes are redundant, because other headers will include the necessary files. Additionally, they cause build failures, because including EGL/egl.h or EGL/eglext.h directly, instead of through wlr/render/egl.h or wlr/render/interface.h, will mean that MESA_EGL_NO_X11_HEADERS will not have been defined, and so the EGL headers will attempt to pull in unnecessary X11 headers that may not exist on the system. For the headers produced by glgen.sh, the includes couldn't simply be deleted, because no other header would include the EGL headers. Neither wlr/render/egl.h or wlr/render/interface.h felt appropriate to include, so I opted instead to copy the MESA_EGL_NO_X11_HEADERS definition before the EGL includes.
2019-04-17idle: enable the compositors to add custom idle timeouts (#1655)Ilia Bozhinov
* idle: enable the compositors to add custom idle timeouts * idle: add a private constructor which also creates the resource * idle: move resource creation to the idle implementation callback
2019-04-13output: remove lx, lyemersion
Fixes https://github.com/swaywm/wlroots/issues/1610
2019-04-11output-management-v1: add more docsemersion
2019-04-11output-management-v1: support outputs without modesemersion
2019-04-11output-management-v1: support applying configurationemersion
2019-04-11output-management-v1: add support for position, transform and scaleemersion
2019-04-11rootston: update output-management-v1 state when output is modesetemersion
2019-04-11output-management-v1: add support for modesemersion
2019-04-11rootston: add output-management-v1 supportemersion
2019-04-11Add apply and test events to manageremersion
2019-04-11Split wlr_output_configuration_head_v1emersion
2019-04-11Add support for wlr-output-management-unstable-v1emersion
2019-04-08Add FreeRDP backend for remote desktop supportDrew DeVault
2019-04-01render: switch wlr_renderer to wlr_drm_format_setemersion
2019-04-01render: introduce wlr_drm_format_setScott Anderson
This types adds a container for formats + modifiers. A list that is of [format [modifier]] was chosen instead of [format modifer] because that is how GBM accepts them. Co-Authored-By: emersion <contact@emersion.fr>
2019-03-27wlr_xdg_toplevel_v6: store pending fullscreen outputBrian Ashworth
Since the fullscreen request may be made before the toplevel's surface is mapped, the requested fullscreen output needs to be stored so it can be retrieved on map (along with the existing fullscreen property). This commit makes the required changes for wlr_xdg_toplevel_v6.
2019-03-27wlr_xdg_toplevel: store pending fullscreen outputBrian Ashworth
Since the fullscreen request may be made before the toplevel's surface is mapped, the requested fullscreen output needs to be stored so it can be retrieved on map (along with the existing fullscreen property). This commit makes the required changes for wlr_xdg_toplevel.
2019-03-21wlr_output: Add preferred property (#1625)Guido Günther
* wlr_output: Indicate modes link * wlr_output: Introduce preferred flag This indicates an outputs preferred mode. * drm: Set preferred flag for an outputs preferred mode