aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-11-06render/gles: Simplify textures a bitScott Anderson
We don't need our own enum for types. Instead we just use GL_TEXTURE_{2D,EXTERNAL_OES}, which already describes usage. Also fixes a situation where we were using GL_TEXTURE_2D in a situation we should not have. wl_drm buffers are always GL_TEXTURE_EXTERNAL_OES, no matter if they're RGB or any other format.
2019-11-05Introduce wlr_keyboard_groupBrian Ashworth
A wlr_keyboard_group allows for multiple keyboard devices to be combined into one logical keyboard. Each keyboard device can only be added to one keyboard group. This helps with the situation where one physical keyboard is exposed as multiple keyboard devices. It is up to the compositors on how they group keyboards together, if at all. Since a wlr_keyboard_group is one logical keyboard, the keys are a set. This means that if a key is pressed on multiple keyboard devices, the key event will only be emitted once, but the internal state will count the number of devices that the key is pressed on. Likewise, the key release will not be emitted until the key is released from all devices. If the compositor wants access to which keys are pressed and released on each keyboard device, the events for those devices can be listened to, as they currently are, in addition to the group keyboard's events. Also, all keyboard devices in the group must share the same keymap. If the keymap's differ, the keyboard device will not be able to be added to the group. Once in the group, if the keymap or effective layout for one keyboard device changes, it will be synced to all keyboard devices in the group. The repeat info and keyboard modifiers are also synced
2019-11-03session/logind: Clean up add_signal_matchesScott Anderson
The original signal matching was using the old interface before sd_bus_match_signal was added, which the new code uses. Change them all to use it now.
2019-11-03session/logind: support CanGraphical propertyRonan Pigott
2019-11-02backend/x11: Give X11 a real rendering loopScott Anderson
Makes use of the present extension to get notified of vsync, and not require any stupid timer hacks. Also make use of the present version of ConfigureNotify, because why not?
2019-10-27Fix heap-use-after-free in wlr_send_tablet_v2_tablet_pad_leaveGyörgy Kurucz
See swaywm/sway#4660
2019-10-27output-management-v1: add assertion as a safety netSimon Ser
Makes it easier to figure out when the compositor submits an invalid output state. References: https://github.com/swaywm/sway/pull/4673
2019-10-27backend/drm: add support for custom modesSimon Ser
Use the CVT algorithm to create a drmModeModeInfo.
2019-10-23backend/drm: retry without modifiers for the primary planeSimon Ser
On some Intel cards using modifiers can fill the FIFO and prevent hotplugged outputs from being properly enabled. Add a fallback without modifiers. Fixes: 2bdd1d0896cc ("backend/drm: use modifiers for our GBM buffers") References: https://github.com/swaywm/wlroots/issues/1840 Closes: https://github.com/swaywm/wlroots/issues/1852
2019-10-23render/egl: prevent use-after-free when destroying current surfaceSimon Ser
2019-10-22backend/drm: track gbm_bo during direct scan-outSimon Ser
We need to destroy the gbm_bo we imported and drmModeRmFb. Closes: https://github.com/swaywm/sway/issues/4662
2019-10-22screencopy: Implement damage reportingAndri Yngvason
2019-10-22protocol/screencopy: Add damage reportingAndri Yngvason
2019-10-22output: Add commit sequence numberAndri Yngvason
This allows synchronisation between different instances of commit/precommit callbacks.
2019-10-19Add missing include required by mesa and libglvnd changeFerdinand Bachmann
eglext.h no longer inludes eglmesaext.h, include it within wlroots explicitly. Fixes #1862
2019-10-17protocol: sync layer-shell with upstreamSimon Ser
Fixes this warning: ../protocol/wlr-layer-shell-unstable-v1.xml:241: warning: since version not increasing
2019-10-16layer_shell: set layer of existing surfaceTimidger
2019-10-16render/gles2: don't unset the current EGL surface when destroying textureSimon Ser
When a texture is destroyed between wlr_egl_make_current and wlr_egl_swap_buffers, it resets the current EGL surface to NULL. This makes wlr_egl_swap_buffers fail. If the EGL context is already current, there's no need to reset it.
2019-10-16backend/wayland: add support for direct scan-outSimon Ser
Closes: https://github.com/swaywm/wlroots/issues/1830
2019-10-16output: add block_idle_frameIvan Molodetskikh
2019-10-16Add new define EGL_NO_X11 for newer mesa libraryDanilo Spinella
Define both MESA_EGL_NO_X11_HEADERS and EGL_NO_X11 for backward combatibility.
2019-10-16build: simplify by using disabler depsSimon Ser
2019-10-11wlr_box: properly calculate closest point for non-positive area boxesIlia Bozhinov
If box->width/height is <= 0, the box doesn't contain any points, and so there is no closest point. wlr_box_closest_point should return NAN in this case. In addition, we need to handle empty boxes in a few other output-layout-related places, because outputs can have size 0x0 when they are created or destroyed.
2019-10-11backend/drm: use modifiers for our GBM buffersSimon Ser
2019-10-11render/egl: support formats with zero modifiersSimon Ser
2019-10-08xwayland: Expose configure request maskScott Moreau
Without this information, compositors have no way to tell whether or not to consider the position information valid. Most notably, a compositor needs to know if it should pick a position for the surface or use the position sent in the configure request.
2019-10-08build: workaround for meson disabler object not working with if notSimon Ser
2019-10-07Update version to 0.8.1Drew DeVault
2019-09-27Fixes crash of compositor when unvalidated keycode 0 is passed (#1833)amingin
* Fixes crash of compositor when unvalidated keycode 0 is passed from virtual keyboard * Style fix
2019-09-26drm: use IMPORT_FD for INVALID modifierIvan Molodetskikh
GBM_BO_IMPORT_FD_MODIFIER doesn't accept the INVALID modifier.
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-26Move initialization of wlr_tablet_pad into types/wlr_tablet_padMarkus Ongyerth
2019-09-19presentation_feedback: add the sampled stateIvan Molodetskikh
2019-09-18compositor: disconnect client on OOM in create_surfaceSimon Ser
2019-09-17xdg-output: send wl_output.done after xdg_output createdVersus Void
xdg-output version 3 requires to send wl_output.done "after all xdg_output properties have been sent when the object is created"
2019-09-15render/egl: Change KHR_debug log to include error codeScott Anderson
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-09-13layer-shell: ignore ack_configure() on closed surfacesIlia Bozhinov
When the surface is closed, we destroy all pending serials waiting to be accepted. This means we need to ignore any future ack events, because we can have the following events: 1. -> configure() 2. -> close() 3. <- ack_configure() At point 3, wlroots will error the client because of invalid serial, however the client hasn't processed close() yet.
2019-09-05backend/drm: check for mst: in path propertyRouven Czerwinski
Instead of checking that the path property is not 0 to determine if the connector is an MST connector, check if the path contains the mst: string. Fixes #1813
2019-08-31render/gles2: fix calculation for partial gles2 pixel read (#1809)Filip Sandborg
2019-08-27Update version to 0.7.0Drew DeVault
2019-08-27Add _incr_version to contrib/Drew DeVault
2019-08-27Revert "wlr_xdg_popup: don't treat all surfaces of grabbing client as ↵Sebastian Krzyszkowiak
grabbing surfaces" This reverts commit 52037d13f7617bef8e0f2566cb4609646cf8cd8f. Fixes #1801
2019-08-24wlr-layer-shell-v1: destroy xdg popups on unmapBrian Ashworth
This destroys the xdg popups associated with a layer surface when the layer surface is unmapped. It does not make sense to keep the popups open when unmapped.
2019-08-19backend: touch: Fixup incomplete patch for single touch devices.Andri Yngvason
All instances of libinput_event_touch_get_slot need to be converted to libinput_event_touch_get_seat_slot for things to work.
2019-08-15backend: touch: Assign good ids to single touch devicesAndri Yngvason
libinput_event_touch_get_slot always returns -1 for single touch devices. Using libinput_event_touch_get_seat_slot instead ensures that they are assigned actual slot ids. Also, this is what Weston does, so this change yields a more consistent behaviour between different compositors.
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-15backend/drm: fix missing plane formatsSimon Ser
The loop populating the format list was exiting early if ARGB8888 was found.
2019-08-12Revert "render/drm: keep old drm_format if realloc fails"Drew DeVault
This reverts commit c1be9b6945f9c664fe694a09620758db9ca695e9.