aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-02-19xwayland: ignore pointer focus changesSimon Ser
This reflects what i3 does [1]. [1]: https://github.com/i3/i3/blob/b3faf9fca9254679a4715486a4de80ebaee70410/src/handlers.c#L1076 Fixes: c067fbc010da ("xwm: allow applications to change focus between their own surfaces") Closes: https://github.com/swaywm/sway/issues/4926
2020-02-19output-management: add current_configuration_dirtyIlia Bozhinov
Previously, if the current configuration contains an output X which is destroyed, its head is automatically removed. If the compositor submits the new configuration after X was removed, the current output configuration is incorrectly detected to be the same as the previous one, and no done event is sent. To prevent this, we can just keep track of whether the current configuration is dirty, i.e whether we have sent a done event for it.
2020-02-18meson.build: update wayland requirement to 1.18Brian Ashworth
This updates the version requirement for wayland-server to 1.18, which is needed for wl_global_remove and wl_global_set_user_data
2020-02-17output: fix output transform compositionsManuel Stoeckl
This change ensures that wlr_output_transform_compose correctly composes transforms when the first transform includes a rotation and the second transform includes a flip.
2020-02-17Fix output rotation directionManuel Stoeckl
The Wayland protocol specifies output transform rotations to be counterclockwise and applied to the surface. Previously, wlroots copied Weston and incorrectly made rotations act clockwise on surfaces. This commit fixes that. This change will break compositors which expect transform rotations to be clockwise, and the rare applications that make use of surface transforms.
2020-02-17seat: don't destroy global immediatelySimon Ser
2020-02-17output: don't destroy global immediatelySimon Ser
Closes: https://github.com/swaywm/sway/issues/3625
2020-02-17util: add wlr_output_destroy_safeSimon Ser
This adds a generic helper to destory transient globals. See [1]. This patch depends on [2] and [3]. [1]: https://gitlab.freedesktop.org/wayland/wayland/issues/10 [2]: https://gitlab.freedesktop.org/wayland/wayland/merge_requests/28 [3]: https://gitlab.freedesktop.org/wayland/wayland/merge_requests/30
2020-02-17backend/session: allow GPU enumeration on FreeBSDJan Beich
https://github.com/FreeBSDDesktop/libudev-devd/commit/f11ee5b418c740ba6fd4c946ab10b0d89702e4d0
2020-02-10virtual-pointer: Add request for mapping to specific outputAndri Yngvason
2020-02-08examples: Fix compositor-examplesScott Anderson
Due to the way the wlr_output API was changed, these examples would never get a frame event to start the rendering loop. We now commit the outputs to start it.
2020-02-04meson: fix wayland-server minimum required versionSimon Ser
Having 1.16 results in the following error when running the compositor: 2019-04-27 17:30:50 - [wayland] wl_global_create: implemented version for 'wl_seat' higher than interface version (7 > 6) 2019-04-27 17:30:50 - [sway/input/seat.c:428] seat_create:could not allocate seat We require wayland-server >= 1.17 for wl_seat version 7. Fixes: a671fc51d25c ("Advertise wl_seat version 7") Fixes: a656e486f4a6 ("seat: fallback to v6 if libwayland 1.17 isn't available")
2020-01-28Declare wlr_seat globals as externJan Staněk
2020-01-24render: unconditionally disable implicit X11 includesSimon Ser
Even if the X11 backend or Xwayland is enabled, we don't rely on EGL/egl.h including Xlib headers.
2020-01-24backend/drm: remove overzealous finish_drm_surfaceRouven Czerwinski
The previous PR was overzealous in adding a finish_drm_surface call which was also done by the caller. Remove the call and also move the comment to the correct code location.
2020-01-24backend/drm: add env variable to disable modifiersRouven Czerwinski
In some cases modesets fail if the planes are initialized with modifiers. Since in this case possibly all planes need to reinitialized, which is not possible in the current wlroots design, add an environment variable for affected users.
2020-01-24build: replace version with soversionSimon Ser
This allows us to have a single number to update when doing a release. This drops WLR_VERSION_API_* definitions.
2020-01-24meson: Fix protocol includes for compositor examplesScott Anderson
2020-01-22Update version to 0.10.0Drew DeVault
2020-01-20Honor the `examples` meson settingJan Staněk
2020-01-17keyboard-group: two NULL keymaps are equalSimon Ser
Previously, creating a keyboard group without any keymap set would result in an error: Device keymap does not match keyboard group's
2020-01-17backend/drm: prevent outputs from being destroyed on commitSimon Ser
This would happen if initializing the renderer fails. Instead, we just mark the output as disabled. References: https://github.com/swaywm/sway/pull/4917
2020-01-14docs: document XDG_SESSION_IDSimon Ser
2020-01-14docs: establish one section per backendSimon Ser
2020-01-14docs: remove rootston-specific env varsSimon Ser
rootston isn't part of wlroots anymore.
2020-01-14Bump meson version to 0.51.2Scott Anderson
There was an issue in 0.51.1 and earlier, where lists of dependencies and disablers weren't acting like they should. Instead of disabling a build, it would error out instead. Changing this logic to work around it is annoying, so just bump the version instead.
2020-01-13render/gles2: unbind textures after useSimon Ser
Keeping textures bound results in hard-to-debug situations where some GL operations incorrectly affect the texture.
2020-01-12render/egl: remove SURFACELESS_MESA special caseSimon Ser
Users can just pass EGL_DEFAULT_DISPLAY themselves.
2020-01-12text-input: fix missing destroy signal initxdavidwu
2020-01-10Drop RDP backendDrew DeVault
Users interested in remote access to wlroots compositors should use wayvnc: https://github.com/any1/wayvnc
2020-01-09backend/wayland: handle display errors more gracefullySimon Ser
Previously, an error on the remote Wayland display would result in an infinite loop priting: 2020-01-09 13:39:03 - [wayland] Source dispatch function returned negative value! 2020-01-09 13:39:03 - [wayland] This would previously accidentally suppress a follow-up dispatch This happens when the remote compositor disconnects the client because of a protocol error, for instance. Handle wl_display_dispatch and wl_display_dispatch_pending returning -1 by terminating the local display and printing an error.
2020-01-09backend/wayland: listen to wl_buffer.release eventsSimon Ser
Previously, we just assumed submitting a new frame would make the compositor release the current one. This isn't always the case, for instance Sway retains old buffers when a transaction is pending. This resulted in synchronization issues with clients writing in front-buffers. Fix this by un-referencing a wlr_buffer when the parent compositor sends wl_buffer.release. Tested by running a fullscreen mpv instance in Sway with the Wayland backend.
2020-01-08Allow WLR_RDP_PORT to be any valid TCP/UDP port numberJason
2020-01-06Update version to 0.9.1Drew DeVault
2020-01-05xwm: allow applications to change focus between their own surfacesIlia Bozhinov
Although currently this problem is present in only Steam, and it is actually a client bug.
2020-01-03virtual-pointer: Actually use the value passed to axis_discreteAndri Yngvason
It turns out that scrolling doesn't work unless this value is set somewhere.
2020-01-02backend/wayland: fix frame callback not registeredSimon Ser
This got removed in [1]. I probably messed up the rebase. [1]: https://github.com/swaywm/wlroots/pull/1797/files#diff-3065f86e6de87d143d4a7673a8ee3a2d Fixes: 5d1ba0f44687 ("output: re-introduce atomic mode, enabled, scale and transform")
2019-12-31Update version to 0.9.0Drew DeVault
2019-12-31render: guard rendering operations between begin() and end()Simon Ser
Add a wlr_renderer.rendering bool, set it to true between wlr_renderer_begin() and wlr_renderer_end(). Assert we're rendering when calling functions that render.
2019-12-31xwayland: Clean up if Xwayland fails to startScott Moreau
When running wlroots compositors with Xwayland executable bits unset, if DISPLAY is set to the display number wlroots has set up, then X and gtk clients (at least) hang when they are ran. X clients should fail with an error and exit while gtk clients should fall back to wayland backend and run correctly. This is because wlroots opened sockets for Xwayland but wasn't closing them if Xwayland failed to start.
2019-12-31virtual-pointer: Add support for the wlr-virtual-pointer-unstable-v1Josef Gajdusek
2019-12-30backend/drm: don't modeset with a NULL mode after TTY switchSimon Ser
This fixes a segfault in drm_connector_set_mode (mode = NULL). This happens because we set wlr_output.enabled to true if the connector is attached to the CRTC. When the user disables an output in the wlroots-based compositor, switches to another VT (enabling the output), then switches back, wlroots sets wlr_output.enabled to true but wlr_output.current_mode is NULL. We should consider not reading properties from KMS after a TTY switch, disabling all connectors. However this may result in flickering (outputs being disabled then re-enabled). Closes: https://github.com/swaywm/wlroots/issues/1874
2019-12-30output: only advertise current modeSimon Ser
- Regular clients shouldn't care about modes - Modes exposed are missing metadata such as aspect-ratio, interleaved, etc - Modes exposed cannot be pruned [1] - wlr-output-management provides a better API for privileged clients [1]: https://gitlab.freedesktop.org/wayland/wayland/issues/92 Closes: https://github.com/swaywm/wlroots/issues/1099
2019-12-30xdg-shell: make wlr_xdg_surface_from_resource reject NULLSimon Ser
Most resources must not be NULL. Make it so callers need to check for NULL explicitly. This makes it clearer in the handlers code that the NULL wl_resource case needs to be handled, and allows callers to make a difference between a NULL wl_resource and an inert resource.
2019-12-30xdg-shell: fix inert xdg_surface handlingSimon Ser
Closes: https://github.com/swaywm/sway/issues/4834 Closes: https://github.com/swaywm/wlroots/issues/1890
2019-12-30tinywl: enable and commit output when modesettingSimon Ser
While at it, choose the preferred mode instead of the last one.
2019-12-30output: refuse to commit a buffer or modeset a disabled outputSimon Ser
References: https://github.com/swaywm/wlroots/issues/1780#issuecomment-518938390
2019-12-30output: clear pending bit if pending == currentSimon Ser
In case the pending value is the same as the current value, clear the bit from pending.committed.
2019-12-30backend/drm: modeset before enabling an outputSimon Ser
This saves one modeset in case the previous mode is different.
2019-12-30output: re-introduce atomic mode, enabled, scale and transformSimon Ser
This reverts commit 01f903874b7e27539488fad7f31476d5bcbc6ac9 and re-applies commit ee5f98ad49fed0439f3313ec685307831d1d1d05. Updates: https://github.com/swaywm/wlroots/issues/1640 (Atomic output updates issue) See also: https://github.com/swaywm/wlroots/pull/1762 (Atomic output updates original PR) See also: https://github.com/swaywm/wlroots/issues/1780 (Issue caused by atomic output updates) See also: https://github.com/swaywm/sway/issues/4419 (Issue caused by atomic output updates) See also: https://github.com/swaywm/wlroots/pull/1781 (Revert PR)