aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2019-09-26Clean up wayland backend tablet supportMarkus Ongyerth
Mostly address feedback from emersion on PR #1694 Remove const qualifier from char *name, to allow free() call
2019-09-26Add zwp-tablet-unstable-v2 client supportMarkus Ongyerth
This allows wlroots based compositors to properly use graphic tablets with the wayland backend. This should be a decent quality of life improvement when working on tablet related features.
2019-09-19presentation_feedback: add the sampled stateIvan Molodetskikh
2019-09-14wlr_seat_touch: Destroy the touchpoint on client destroySebastian Krzyszkowiak
Since e26217c51e3a5e1d7dfc95a8a76299e056497981, touchpoints can outlive surfaces. This works fine as long as the client stays around, but fails horribly otherwise; therefore we have to make sure that touchpoints don't outlive their clients. Fixes #1788
2019-08-15wlr_xdg_toplevel: reparent on parent unmapBrian Ashworth
From the xdg-shell specification: If the parent is unmapped then its children are managed as though the parent of the now-unmapped parent has become the parent of this surface. If no parent exists for the now-unmapped parent then the children are managed as though they have no parent surface.
2019-08-12wlr_xdg_popup: grab touch events alongside pointer and keyboardSebastian Krzyszkowiak
Fixes #933
2019-08-11Add libinput-1.14 supportDrew DeVault
This libinput version adds a new tablet tool type.
2019-08-09Remove rootstonDrew DeVault
2019-08-07Revert "output: atomic mode"Rouven Czerwinski
This reverts commit ee5f98ad49fed0439f3313ec685307831d1d1d05. This intoduced problems where outputs could not be turned off because they had flips pending.
2019-08-03backend/drm: destroy output immediatelyRouven Czerwinski
Instead of waiting for the next pageflip, destroy the output immediately since we can now handle flips for outputs which no longer exist. Also demote the missing crtc on flip to debug. Fixes #1739
2019-08-02output: atomic mode, enabled, scale and transformSimon Ser
This commit makes more output properties (mode, enabled, scale and transform) atomic. This means that they are double-buffered and only applied on commit. Compositors now need to call wlr_output_commit after setting any of those properties. Internally, backends still apply properties sequentially. The behaviour should be exactly the same as before. Future commits will update some backends to take advantage of the atomic interface. Some backends are non-atomic by design, e.g. the X11 backend or the legacy DRM backend. Updates: https://github.com/swaywm/wlroots/issues/1640
2019-08-01screencopy: send failed after output disconnectJason Francis
This prevents screencopy applications from hanging because a failed event never got sent when the output was disconnected or disabled after the call to buffer().
2019-07-27Remove all wayland-server.h includesSimon Ser
The documentation for wayland-server.h says: > Use of this header file is discouraged. Prefer including > wayland-server-core.h instead, which does not include the server protocol > header and as such only defines the library PI, excluding the deprecated API > below. Replacing wayland-server.h with wayland-server-core.h allows us to drop the WL_HIDE_DEPRECATED declaration.
2019-07-21output: drop wlr_output_mode.flagsSimon Ser
AFAIK this was always set to zero. Instead, compute wl_output mode flags on the fly. Technically this is a breaking change, but I don't think anybody uses this field.
2019-07-17Use -fmacro-prefix-map to strip build pathManuel Stoeckl
This commit matches sway's 2dc4978d8af326c310057ca8fd22a4c7f5d09335. To help ensure a reproducible build (when debug info is disabled), the meson build script now uses the -fmacro-prefix-map command line argument supported by GCC to strip the build-path dependent bytes of each __FILE__ string used by wlr_log and related functions. A rather ugly algorithm is used to compute the relative path between the build and source folders, because meson has no specific function for this. When the compiler does not support -fmacro-prefix-map, fall back to shifting the start of each __FILE__ string by the length of the relative path to the source directory.
2019-07-17backends/x11: Touch supportSebastian Krzyszkowiak
Closes #1749
2019-07-17wlr_touch: Declare wlr_touch_impl usage as constSebastian Krzyszkowiak
This brings it in line with wlr_keyboard and wlr_pointer
2019-07-16layer-shell: Remove unused event sourceGuido Günther
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.