A modular Wayland compositor library
wlroots 0.8.0 includes the following breaking changes:
The wlr_presentation_time structures have been rewritten. To correctly support presentation-time, use wlr_presentation_surface_sampled after you sample (read from) each surface.
Changelog:
Drew DeVault (4):
wlr_idle_inhibit_v1: style fixes
drm backend: detect non-desktop outputs
drm backend: implement DRM lease issuance
Introduce wlr_drm_lease_v1
Filip Sandborg (1):
render/gles2: fix calculation for partial gles2 pixel read (#1809)
Ilia Bozhinov (1):
layer-shell: ignore ack_configure() on closed surfaces
Ivan Molodetskikh (1):
presentation_feedback: add the sampled state
Rouven Czerwinski (1):
backend/drm: check for mst: in path property
Scott Anderson (1):
render/egl: Change KHR_debug log to include error code
Sebastian Krzyszkowiak (1):
wlr_seat_touch: Destroy the touchpoint on client destroy
Simon Ser (1):
compositor: disconnect client on OOM in create_surface
Versus Void (1):
xdg-output: send wl_output.done after xdg_output created
wlroots 0.7.0 includes the following breaking changes:
This field was never used and has now been removed.
This field was not meaningful.
These protocols are obsolete and have been replaced with more mature wlr protocols.
Andri Yngvason (2):
backend: touch: Assign good ids to single touch devices
backend: touch: Fixup incomplete patch for single touch devices.
Antonin Décimo (12):
render/drm: keep old drm_format if realloc fails
xcursor: avoid leak and loss of all cursors if cursors realloc fails
Fix memory leak
Simplify check
wlr_surface: condition is always false
xdg_shell: remove variable self-assignment
backend/session: non-void function should return a value
backend/drm: use UINT64_C for uint64_t literals
Avoid loss of a fractional part
backend/wayland: check if zxdg_toplevel_decoration_v1 is not NULL
xwayland: prevent possible array overrun
examples: remove duplicated condition
Ashkan Kiani (1):
Use a set to track pointer button state.
Brian Ashworth (4):
session/logind: keep active for pause_device gone
zwp_virtual-keyboard: fix mmap error handling
wlr_xdg_toplevel: reparent on parent unmap
wlr-layer-shell-v1: destroy xdg popups on unmap
Dorota Czaplejewicz (2):
x11: Send a frame event on the pointer after button events
virtual_keyboard: Require keymap before accepting keycodes
Drew DeVault (4):
Remove rootston
Add libinput-1.14 support
Revert "render/drm: keep old drm_format if realloc fails"
Add _incr_version to contrib/
Greg V (1):
Support pointer-gestures on Wayland backend
Guido Günther (4):
wlr_seat_touch: Don't destroy touch point with surface
layer-shell: Remove unused event source
layer-shell: Reject requests on gone surfaces
text_input: Don't forget to send enter events
Ilia Bozhinov (2):
output: clear output->damage on successful commit
output-damage: set needs swap only when we have new damage
Jan Beich (1):
Test RDP backend on FreeBSD as well
Jan Chren (2):
session/logind: specify seat exactly
session/logind: check for XDG_SESSION_ID first
Jason Francis (3):
screencopy: fix segfault on disabled output
screencopy: send failed after output disconnect
export-dmabuf-v1: fix segfault on output disable
Manuel Stoeckl (6):
Implement serial validation for selection requests
wlr_seat: Fix edge cases with serial validation
wlr_pointer_gestures: Register event serials
wlr_tablet_v2: Register event serials
wlr_seat: special-case first serial set use
Use -fmacro-prefix-map to strip build path
Michiel (1):
Fixes #1689 RDP RemoteFX crash
Rouven Czerwinski (5):
wlr_output: remove idle_done on output destroy
drm: legacy: issue a NULL modeset on disable
backend: drm: switch to pageflip_handler_2
backend/drm: destroy output immediately
Revert "output: atomic mode"
Scott Anderson (3):
Remove WLR_DRM_NO_ATOMIC_GAMMA workaround
backend/drm: Simplify object matching code
backend/drm: Exit-early if 0 crtcs
Sebastian Krzyszkowiak (9):
seat: Move focus back to first shell surface when unfocusing layer surface
xdg_shell(_v6): Take maximize/fullscreen state into account on view init
wlr_touch: Declare wlr_touch_impl usage as const
backends/x11: Touch support
wlr_input_method_v2: Remove input method's resource from the list on destroy
wlr_seat_touch: add a way for a grab to ignore a touch point
wlr_xdg_popup: grab touch events alongside pointer and keyboard
wlr_xdg_popup: don't treat all surfaces of grabbing client as grabbing surfaces
Revert "wlr_xdg_popup: don't treat all surfaces of grabbing client as grabbing surfaces"
Silvan Jegen (1):
rootston: remove duplicated include
Simon Ser (26):
backend/wayland: use xdg-decoration-unstable-v1
backend/wayland: remove wl_shm
render/gles2: print GL_RENDERER
Remove orbital screenshooter and gamma-control
backend/drm: check format when scanning out DMA-BUF
backend/drm: strip alpha channel on scan-out
render/dmabuf: add wlr_dmabuf_attributes_copy
buffer: add wlr_buffer_get_dmabuf
output: change set_dmabuf to attach_buffer
output: fix attach_buffer semantics
output: save buffer in pending state
backend/drm: hold buffers while scanning out
backend/drm: reject DMA-BUFs with flags
rootston: add support for direct scan-out
output: refuse to scan-out if software cursors are used
output: introduce wlr_output_lock_attach_render
output-damage: support direct scan-out
backend/drm: fallback to drmModeAddFB2
backend/drm: add support for multiplanar BOs
output: reset the pending state on failed commit
output: remove wlr_output_impl.transform
output: drop wlr_output_mode.flags
Remove all wayland-server.h includes
output: atomic mode, enabled, scale and transform
xdg-output: add support for xdg-output-unstable-v1 version 3
backend/drm: fix missing plane formats
emersion (1):
backend/drm: add basic support for direct scan-out
wlroots 0.6.0 includes the following breaking changes:
We have removed the long-deprecated wl_shell implementation from wlroots.
To migrate from the old API to the new one:
The layout coordinates have been removed from wlr_output. Wayland clients now receive a non-meaningful value from this interface, and should switch to using xdg-output for this purpose.
To update your compositors, run s/lid_switch/switch_device/g.
Alyssa Ross (1):
Fix missing headers when building without X11
Brian Ashworth (6):
backend/wayland: improve output number handling
backend/x11: improve output number handling
backend/headless: improve output number handling
backend/noop: improve output number handling
wlr_xdg_toplevel: store pending fullscreen output
wlr_xdg_toplevel_v6: store pending fullscreen output
Drew DeVault (2):
Add FreeRDP backend for remote desktop support
Remove wlr_wl_shell
Guido Günther (3):
wlr_output: Add preferred property (#1625)
rootston: Also iterate layer shell popups
Emit preferred mode
Ilia Bozhinov (8):
meson.build: require libinput >= 1.9.0
noop: implement setting a custom mode
rootston: remove disabled outputs from the output layout
output: do nothing in output_set_image if backend has no renderer
idle: enable the compositors to add custom idle timeouts (#1655)
foreign-toplevel: support fullscreen state and request
rootston: add support for foreign-toplevel fullscreening
examples: add fullscreening to foreign-toplevel.c
Jan Beich (2):
backend: unbreak on 32-bit architectures
Switch to system epoll-shim.pc in FreeBSD build
Markus Ongyerth (1):
send proximity_out in proximity in for tablet_v2
Ryan Walklin (1):
s/lid_switch/switch_device
Scott Anderson (2):
render: introduce wlr_drm_format_set
Advertise wl_seat version 7
Simon Ser (20):
data-device: ignore accept for selection offers
output: introduce wlr_output_preferred_mode
rootston: use wlr_output_preferred_mode
output: refactor frame submission API
output: refactor backend API
output: rename swap_buffers event to precommit
output-damage: refactor API
output: rename needs_commit to needs_frame
render/egl: fix zero-length VLA
backend/wayland: fix wlr_wl_pointer use-after-free
output-damage: fix segfault after destroy
render/egl: fix swapping with no damage
rootston: don't submit too much damage
output: disambiguate the two types of damage
rootston: fix damage tracking debug mode
output: introduce wlr_output_schedule_done
xdg-output: schedule a wl_output.done event on update
seat: fallback to v6 if libwayland 1.17 isn't available
backend/noop: disallow rendering
ci: enable Meson auto features
Stuart Dilts (1):
types/meson.build: Add compile args for libinput to lib_wlr_types (#1636)
emersion (18):
meson: remove -Wredundant-decls
render: switch wlr_renderer to wlr_drm_format_set
util/log: setup wayland log handler
Add support for wlr-output-management-unstable-v1
Split wlr_output_configuration_head_v1
Add apply and test events to manager
output-management-v1: various fixes
rootston: add output-management-v1 support
output-management-v1: add support for modes
rootston: update output-management-v1 state when output is modeset
output-management-v1: add support for position, transform and scale
output-management-v1: support applying configuration
output-management-v1: fix wl_fixed_t conversion
output-management-v1: support outputs without modes
output-management-v1: update protocol, add set_custom_mode
rootston: disable then enable outputs when applying output-management state
output-management-v1: add more docs
output: remove lx, ly
The DISPLAY is now written to wlr_xwayland.display_name
and it is the compositor's responsibility to export it to the environment of its X11 clients.
Brian Ashworth (1):
wlr_output_layout_get_box: handle empty layout
Guido Günther (4):
Unbreak build with '-Wstrict-prototypes'
rootston/view: Remove redundant declaration in the same file
wlr_xdg_shell: Remove redundant declaration in the same file
Remove glEGLImageTargetTexture2DOES
Ian Fan (1):
seat: fix remaining wlr_button_state enum rename
Ilia Bozhinov (2):
xwm: use min size as base size hint if it is missing and vice versa
xwm: fix typos in WM_NORMAL_HINTS handling
Niklas Schulze (1):
backend/session: Allow setting a custom tty via WLR_DIRECT_TTY
Scott Anderson (1):
backend/drm: Don't fail on failing to find overlay format
emersion (15):
seat: guard against button count corruption
meson: enable more compiler warnings
seat: use wlr_button_state enum instead of uint32_t
seat: only store serial if pressing a button
tinywl: send pointer frame events
backend/session: add noop session
rootston: refactor rendering
rootston: fix rotated views rendering
rootston: fix Xwayland children rendering when fullscreen
rootston: split rendering code into render.c
rootston: fix input events for rotated views
xwayland: don't set DISPLAY
seat: add debug logs when validating grab serials
backend/session: open TTY with O_CLOEXEC for direct session
xwayland: set CLOEXEC on /dev/null FD
Compositors need to listen to the wlr_seat.request_start_drag
event (just like selection). They need to accept the drag with wlr_seat_start_{pointer,touch}_drag
or to reject it. See the related rootston changes.
Additionally, the new_drag_icon
event has been removed, use start_drag
instead to collect the drag icon.
Brian Ashworth (4):
xwm: stack below on map
drm: do not modeset to current mode
wlr_output: do not modeset to current mode
backend/drm: fix modeset on drm fd resume
Connor E (2):
Make popup inert when destroyed.
Add build-*/ to gitignore.
Drew DeVault (2):
Use freebsd/latest for FreeBSD sr.ht builds
Revert "drm: do not modeset to current mode"
Geoff Greer (1):
Add a wlr_output_set_subpixel()
Ivan Molodetskikh (2):
data-control: add primary selection support
Update data-control
Jan Beich (1):
Add xcb-errors to FreeBSD build
Markus Ongyerth (1):
Prevent NULL dereference in tablet_tool handler
Rouven Czerwinski (1):
backend/drm: fix memory leak in realloc crtcs
Scott Anderson (1):
backend/drm: Unset cursor on cleanup
Sebastian Krzyszkowiak (3):
Post protocol error on invalid wl_surface scale
rootston: don't try to maximize fullscreen surfaces
rootston: surface_at: check for fullscreen surfaces in between TOP and OVERLAY layers
Uli Schlachter (1):
xwm: Add _NET_CLIENT_LIST support
Vincent Vanlaer (3):
Allow cursor render surface to be used as fb
Copy cursor surface to secondary gpu if necessary
Add workaround for hardware cursors on nouveau
emersion (21):
Bump project version to 0.3
data-device: destroy previous source when starting drag
xdg-shell: destroy child popups on unmap
Deprecate old protocols
primary-selection-v1: copy from gtk-primary-selection
surface: error out on invalid transform
subsurface: add map/unmap events
xwayland, data-device: fix surface state on unmap
data-device: make old offers inert before sending selection
backend/drm: fix NULL dereference when unsetting cursor
xwayland: don't use SOCK_CLOEXEC
xwayland: remove remaining SOCK_CLOEXEC
data-device: refactor wlr_drag
data-device: fix drag cleanup if not started
rootston: cancel drag on invalid serial
data-offer: send WL_DATA_OFFER_ERROR_INVALID_FINISH
data-device: unbreak wl_data_source.cancel during drag-and-drop
rootston: move part of desktop.c to view.c, use an interface for views
rootston: add a view child interface
rootston: make roots_view embedded and remove unions
data-device: check if there's a source before sending dnd_finish
mnussbaum (1):
Allow compositors to run as systemd user units
wlroots 0.3 contains the following breaking changes:
wlr_seat
and wlr_seat_client
. Use wlr_gtk_primary_selection_*
instead.wlr_output_swap_buffers
damage to output-buffer-local coords (#1403)wlr_box
input paramaters (#1441). The destination parameter is now always the first one.wlr_xdg_surface_send_close
(#1461). Use wlr_xdg_toplevel_send_close
and wlr_xdg_popup_destroy
instead.wlr_seat.events.request_set_selection
and wlr_seat.events.request_set_primary_selection
, then decide whether or not to accept the request with wlr_seat_set_selection
and wlr_seat_set_primary_selection
.wlr_seat_client_send_selection
has been removed, this is an internal function (#1427)wlr_data_source_finish
has been removed, this is now handled by wlr_data_source_destroy
(#1427)wlr_data_source_cancel
has been renamed to wlr_data_source_destroy
(#1427)wlr_pointer.frame
or wlr_cursor.frame
events, and call wlr_seat_notify_frame
(#1503). If you're simulating pointer events, you'll need to call wlr_seat_notify_frame
manually.