aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-05-22session/logind: check for XDG_SESSION_ID firstJan Chren
In order to support compositors running as systemd user units without display manager, a mechanism for specifying session ID exactly must exist. Checking for `XDG_SESSION_ID` mimics loginctl behaviour https://github.com/systemd/systemd/blob/e95be7def26c6c5feaf08a4135aa4f50c53263a8/src/login/loginctl.c#L856.
2019-05-22Merge pull request #1704 from rindeal/patch-2Scott Anderson
session/logind: specify seat exactly
2019-05-22session/logind: specify seat exactlyJan Chren
"/org/freedesktop/login1/seat/self" path triggers seat-finding code path in logind, which currently relies on getting the session based on caller's PID. This behaviour is deprecated in logind as it doesn't work eg. with systemd user units, which run outside of user session. We check for "seat0" in logind_change_vt() already as introduced in 47985d2dc56a6af469ac9375e7548136765aff16, so hard-coding it here is not a problem, otherwise sd_session_get_seat() could be used.
2019-05-19rootston: remove duplicated includeSilvan Jegen
2019-05-15Merge pull request #1696 from RedSoxFan/logind-stay-active-on-goneScott Anderson
session/logind: keep active for pause_device gone
2019-05-13Fixes #1689 RDP RemoteFX crashMichiel
When using the rdp backend and connecting with xfreerdp ... --rfx, wlroots crashes in backend/rdp/output.c while attempting to realloc(..., 0). This commit guards against that and instead returns true, resulting in no rfx message being sent. This prevents the crash and appears to work, but it's not obvious if this is correct from a specification perspective.
2019-05-13output: clear output->damage on successful commitIlia Bozhinov
2019-05-13session/logind: keep active for pause_device goneBrian Ashworth
This appears to be a quick fix for compositors freezing when a dock is disconnected. Disconnection of the dock is causing `pause_device` for the DRM devices associated with the dock. Since these devices major number is `DRM_MAJOR`, the session was being set to inactive. This just makes it so the session is not set to inactive when the device's state is `gone`.
2019-05-07render/gles2: print GL_RENDERERSimon Ser
This is often the name of the GPU and can help debugging graphics issues.
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-05-03Test RDP backend on FreeBSD as wellJan Beich
2019-05-03Update version to 0.6.0Drew DeVault
2019-04-29ci: enable Meson auto featuresSimon Ser
This makes it so we don't miss build failures because the CI misses a dependency.
2019-04-29backend/noop: disallow renderingSimon Ser
Closes: https://github.com/swaywm/wlroots/issues/1662
2019-04-29Switch to system epoll-shim.pc in FreeBSD buildJan Beich
2019-04-29examples: add fullscreening to foreign-toplevel.cIlia Bozhinov
2019-04-29rootston: add support for foreign-toplevel fullscreeningIlia Bozhinov
2019-04-29foreign-toplevel: support fullscreen state and requestIlia Bozhinov
2019-04-27seat: fallback to v6 if libwayland 1.17 isn't availableSimon Ser
See https://github.com/swaywm/wlroots/pull/1675#issuecomment-487300445
2019-04-27xdg-output: schedule a wl_output.done event on updateSimon Ser
Xwayland expects an xdg_output.done event to always be sent with a wl_output.done event.
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-27rootston: fix damage tracking debug modeSimon Ser
We want to damage the whole output in this mode. However if we overwrite the damaged region after it's useless. Fixes: 57d32d03a87ab4a74230294cefc5fa8b1e28c96d
2019-04-26output: disambiguate the two types of damageSimon Ser
See https://github.com/swaywm/wlroots/issues/1665
2019-04-26rootston: don't submit too much damageSimon Ser
We only need to damage the parts of the screen that changed since last frame, we don't need to accumulate damage from previous buffers. We still need to re-render the accumulated damage. Fixes https://github.com/swaywm/wlroots/issues/1665
2019-04-26render/egl: fix swapping with no damageSimon Ser
According to the spec: > If <n_rects> is 0 then <rects> is ignored and the entire > surface is implicitly damaged and the behaviour is equivalent > to calling eglSwapBuffers. When we want to swap with an empty damage region, set the damage to a single empty rectangle.
2019-04-26Remove wlr_wl_shellDrew DeVault
2019-04-26Advertise wl_seat version 7Scott Anderson
This does not require any code changes, as we already copy the keymap data separately for each client. For details, see https://gitlab.freedesktop.org/wayland/wayland/commit/905c0a341ddf0a885811d19e2b79c65a3f1d210c
2019-04-25output-damage: fix segfault after destroySimon Ser
Fixes: 5e6766a165bd4bc71f1dc24c4348f7be0f020ddd
2019-04-23backend/wayland: fix wlr_wl_pointer use-after-freeSimon Ser
2019-04-23render/egl: fix zero-length VLASimon Ser
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-22rootston: use wlr_output_preferred_modeSimon Ser
Also fix rootston setting the preferred mode when another mode is specified in the config file.
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-19data-device: ignore accept for selection offersSimon Ser
It doesn't make sense for clients to send "accept" requests to offers that aren't drag-and-drop. I discussed with Daniel Stone to make it a protocol error [1] but too many clients send it (e.g. GTK+). Let's just log it for now. [1]: https://gitlab.freedesktop.org/wayland/wayland/merge_requests/11#note_149710
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-14output: do nothing in output_set_image if backend has no rendererIlia Bozhinov
This is useful when using the noop backend for example.
2019-04-13rootston: remove disabled outputs from the output layoutIlia Bozhinov
We should also be careful when using wlr_output_layout_get_box(), since it may return null.
2019-04-13output: remove lx, lyemersion
Fixes https://github.com/swaywm/wlroots/issues/1610
2019-04-11output-management-v1: add more docsemersion
2019-04-11rootston: disable then enable outputs when applying output-management stateemersion
2019-04-11Emit preferred modeGuido Günther
2019-04-11output-management-v1: update protocol, add set_custom_modeemersion
2019-04-11output-management-v1: support outputs without modesemersion
2019-04-11output-management-v1: fix wl_fixed_t conversionemersion