aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
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-11output-management-v1: various fixesemersion
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-08backend: unbreak on 32-bit architecturesJan Beich
backend/headless/output.c:132:3: error: format specifies type 'long' but the argument has type 'size_t' (aka 'unsigned int') [-Werror,-Wformat] ++backend->last_output_num); ^~~~~~~~~~~~~~~~~~~~~~~~~~ backend/noop/output.c:72:3: error: format specifies type 'long' but the argument has type 'size_t' (aka 'unsigned int') [-Werror,-Wformat] ++backend->last_output_num); ^~~~~~~~~~~~~~~~~~~~~~~~~~ backend/wayland/output.c:294:3: error: format specifies type 'unsigned long' but the argument has type 'size_t' (aka 'unsigned int') [-Werror,-Wformat] ++backend->last_output_num); ^~~~~~~~~~~~~~~~~~~~~~~~~~ backend/x11/output.c:150:3: error: format specifies type 'long' but the argument has type 'size_t' (aka 'unsigned int') [-Werror,-Wformat] ++x11->last_output_num); ^~~~~~~~~~~~~~~~~~~~~~
2019-04-08noop: implement setting a custom modeIlia Bozhinov
2019-04-08Add FreeRDP backend for remote desktop supportDrew DeVault
2019-04-08Merge pull request #1642 from emersion/format-setGuido Günther
Introduce wlr_format_set
2019-04-07util/log: setup wayland log handleremersion
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-31send proximity_out in proximity in for tablet_v2Markus Ongyerth
When the proximity_in event is sent for tablet_v2 and there's already a surface that currently has tablet (tool) focus, it should be told that this is no longer the case, so we need to send the proximity_out event.
2019-03-27types/meson.build: Add compile args for libinput to lib_wlr_types (#1636)Stuart Dilts
* Add compile args for libinput to lib_wlr_types Fixes the build on openSUSE Tumbleweed * Remove libinput include from wlr_tablet_v2.c + libinput isn't used in the file + Also remove libinput dependency from types/meson.build
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-24rootston: Also iterate layer shell popupsGuido Günther
Broken by 62fd03a7beb18da6c4a5929e38739cf2199dfa79 Closes: #1631