Releases: swaywm/wlroots
wlroots 0.8.0
wlroots 0.8.0 includes the following breaking changes:
presentation_feedback: add the sampled state
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
wlroots 0.7.0 includes the following breaking changes:
wlr_output_mode: drop wlr_outupt_mode.flags
This field was never used and has now been removed.
wlr_output: drop wlr_output.transform
This field was not meaningful.
Orbital screenshooter and gamma-control have been removed
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
wlroots 0.6.0 includes the following breaking changes:
Remove wlr_wl_shell
We have removed the long-deprecated wl_shell implementation from wlroots.
output: refactor frame submission API
To migrate from the old API to the new one:
- Replace wlr_output_make_current calls with wlr_output_attach_render
- Replace wlr_output_swap_buffers calls with wlr_output_set_damage and wlr_output_commit
- Replace wlr_output_damage_make_current calls with wlr_output_damage_attach_render
- Replace wlr_output_damage_swap_buffers with wlr_output_set_damage and wlr_output_commit
- Replace wlr_output.needs_swap with wlr_output.needs_frame
- Replace wlr_output.events.swap_buffers with wlr_output.events.precommit
output: remove lx, ly
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.
Rename lid_switch to switch_device to disambiguate lid and tablet mode switches
To update your compositors, run s/lid_switch/switch_device/g.
Changelog
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
wlroots 0.5.0
Breaking changes
DISPLAY is no longer set automatically for Xwayland (#1596)
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.
Changelog
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
wlroots 0.4.1
Guido Günther (1): rootston: Make add_{switch,binding}_config static athrungithub (1): clang compile fix #1572 emersion (1): Bump version to 0.4
0.4
Breaking Changes
Drag-and-drop has been refactored (#1517)
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.
Changelog
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
0.3
wlroots 0.3 contains the following breaking changes:
- gtk-primary-selection: refactor everything, untie from seat (#1397). Various properties related to this unstable protocol have been removed from
wlr_seat
andwlr_seat_client
. Usewlr_gtk_primary_selection_*
instead. - output: switch
wlr_output_swap_buffers
damage to output-buffer-local coords (#1403) - Standardize the
wlr_box
input paramaters (#1441). The destination parameter is now always the first one. - Remove
wlr_xdg_surface_send_close
(#1461). Usewlr_xdg_toplevel_send_close
andwlr_xdg_popup_destroy
instead. - data-device, primary-selection: add request_set_selection (#1402). Compositors now need to listen on
wlr_seat.events.request_set_selection
andwlr_seat.events.request_set_primary_selection
, then decide whether or not to accept the request withwlr_seat_set_selection
andwlr_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 bywlr_data_source_destroy
(#1427)wlr_data_source_cancel
has been renamed towlr_data_source_destroy
(#1427)- Compositors now need to listen on the
wlr_pointer.frame
orwlr_cursor.frame
events, and callwlr_seat_notify_frame
(#1503). If you're simulating pointer events, you'll need to callwlr_seat_notify_frame
manually.