# Introduction
This file contains significant user-visible changes for each version.
For full changelog, use `git log`.
The format is based on [Keep a Changelog]
On the `master` branch we have moved across to the wlroots scene-graph
API and as a result there is likey to be a period of instability and
regression. A `v0.5` branch has been created as a stable pre-scene-graph
branch, but it is not envisaged that new major features will be added on
that branch.
# Summary of Releases
| Date | Release notes | wlroots version | lines-of-code |
|------------|---------------|-----------------|---------------|
| 2022-07-15 | [0.5.3] | 0.15.1 | 9216 |
| 2022-05-17 | [0.5.2] | 0.15.1 | 8829 |
| 2022-04-08 | [0.5.1] | 0.15.1 | 8829 |
| 2022-02-18 | [0.5.0] | 0.15.1 | 8766 |
| 2021-12-31 | [0.4.0] | 0.15.0 | 8159 |
| 2021-06-28 | [0.3.0] | 0.14.0 | 5051 |
| 2021-04-15 | [0.2.0] | 0.13.0 | 5011 |
| 2021-03-05 | [0.1.0] | 0.12.0 | 4627 |
## 0.6.0 - unreleased
This release contains significant refactoring to use the wlroots
scene-graph API. This touches many areas of the code, particularly
rendering, server-side-decoration, the layer-shell implementation and the
menu. Many thanks to @Consolatis for doing most of the heavy lifting with
this.
Noteworthy, related changes include:
- The use of a buffer implementation instead of using wlr_texture. It
handles both images and fonts, and scales according to output scale.
- The use of node-descriptors to assign roles to wlr_scene_nodes in order
to simplify the code.
- Improving the "Debug" action to print scene-graph trees
A large number of bugs and regressions have been fixed following the
re-factoring, too many to list here, but we are grateful to all who have
reported, tested and fixed issues. Particular mentions go to @bi4k8,
@flrian, @heroin-moose, @jlindgren90, @Joshua-Ashton, @01micko and @skerit
### Added
- Workspaces. Written-by: @Consolatis
- presentation-time protocol
- Native language support for client-menus. Written-by: @01micko
- Touch support. Written-by: @bi4k8
- drm_lease_v1 for VR to work and leasing of desktop displays.
Written-by: Joshua Ashton
- ToggleAlwaysOnTop action. Written-by: @Consolatis
- Command line option -C to specify config directory
- Theme options osd.border.color and osd.border.width. Written-by: @Consolatis
- Menu and associated theme options:
menu.separator.width, menu.separator.padding.width,
menu.separator.padding.height and menu.separator.color
- Adjust maximized and tiled windows according to usable_area taking
into account exclusive layer-shell clients. Written-by: @Consolatis
- Restore natural geometry when moving tiled/maximized window
Fixes #391. Written-by: @Consolatis
- Improve action implementation to take a list of arguments in preperation
for actions with multiple arguments. Written-by: @Consolatis
### Fixed
- Dynamically adjust server-side-deccoration invisible resize areas based
on usable_area to ensure that cursor events are sent to clients such as
panels in preference to grabbing window edges. Fixes #265.
Written-by: @Consolatis
- Always position submenus inside output extents. Fixes #276
Written-by: @Consolatis
- Do not crash when changing TTY. Written-by: @bi4k8
- Set wlroots.wrap to a specific commit rather than master because it
enables labwc commits to be checked out and build without manually
having to find the right wlroots commit if there are upstream breaking
changes.
- Increase accuracy of window center-alignment, taking into account
usable_area and window decoration. Also, top/left align if window is
bigger than usable area.
- Handle view-destruction during alt-tab cycling.
Written-by: @Joshua-Ashton
- Survive all outputs being disabled
- Check that double-clicks are on the same window. Written-by: yizixiao
- Set xdg-shell window position before maximize on first map so that the
unmaximized geometry is known when started in maximized mode.
Fixes issue #305. Reported-by: @01micko
- Support