-# NEWS
+# Introduction
This file contains significant user-visible changes for each version.
-For full changelog, use `git log`
+For full changelog, use `git log`.
-[We are currently in the process of update the code-base to use the wlroots
-scene-graph API](https://github.com/johanmalm/labwc/tree/scene)
+The format is based on [Keep a Changelog]
-Tag 0.5.0 is the last minor release before the move to scene-graph. An
-associated v0.5 branch exists for patches and patch-tags if needed. It's
-not envisaged that new features will be added on that branch though.
+We are currently in the process of updating the code-base to use the
+wlroots scene-graph API and have decided to use three branches at this
+time:
-## 0.5.0 (2022-02-18)
+- `v0.5` - the last minor release before the move to scene-graph. It is
+ not envisaged that new major features will be added on that branch.
-This release contains the following two breaking changes:
+- `scene-graph` - where the active porting is taking place until it is
+ merged into master at which point the scene-graph branch will be
+ removed.
+
+- `master` - which is mostly frozen to make the rebase/merge a bit
+ easier.
+
+# Summary of Releases
+
+| Date | Release notes | wlroots version | lines-of-code |
+|------------|---------------|-----------------|---------------|
+| 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.5.1 - unreleased
-1. Disabling outputs now causes views to be re-arranged, so in the
- context of idle system power management (for example when using
- swaylock), it is no longer suitable to call wlr-randr {--off,--on}
- to enable/disable outputs.
+### Fixed
-2. The "Drag" mouse-event and the unmaximize-on-move feature require
- slightly different `<mousebind>` settings to feel natural, so suggest
- updating any local `rc.xml` settings in accordance with
- `docs/rc.xml.all`
+- Implement cursor input for unmanaged xwayland surfaces outside their
+ parent view. Without this menus extending outside the main application
+ window do not receive mouse input. Written-by: @jlindgren90
+- Allow dragging scrollbar or selecting text even when moving cursor
+ outside of the window (issue #241). Written-by: @Consolatis
+- Fix positioning of xwayland views with multiple queued configure
+ events. Written-by: @Consolatis
+- Force a pointer enter event on the surface below the cursor when
+ cycling views (issue #162). Written-by: @Consolatis
+- Fix qt application crash on touchpad scroll (issue #225).
+ Written-by: @Consolatis
+
+## [0.5.0] - 2022-02-18
As usual, this release contains a bunch of fixes and improvements, of
which the most notable feature-type changes are listed below. A big
thank you to @ARDiDo, @Consolatis and @jlindgren90 for much of the hard
work.
+### Added
+
- Render overlay layer popups to support sfwbar (issue #239)
-
- Support HiDPI on-screen-display images for outputs with different scales
-
- Reload environment variables on SIGHUPi (issue #227)
-
- Add client menu
-
- Allow applications to start in fullscreen
-
- Add config option `<core><cycleViewPreview>` to preview the contents
of each view when cycling through them (for example using alt-tab).
-
- Allow mouse movements to trigger SnapToEdge. When dragging a view, move
the cursor outside an output to snap in that direction.
-
- Unmaximize on Move
-
- Support wlroots environment variable `WLR_{WL,X11}_OUTPUTS` for running
in running nested in X11 or a wlroots compositor.
-
- Support pointer gestures (pinch/swipe)
-
- Adjust views to account for output layout changes
-## Previous releases
+### Changed
-| Date | Release notes | wlroots version |
-|------------|---------------|-----------------|
-| 2022-02-18 | [0.5.0] | 0.15.1 |
-| 2021-12-31 | [0.4.0] | 0.15.0 |
-| 2021-06-28 | [0.3.0] | 0.14.0 |
-| 2021-04-15 | [0.2.0] | 0.13.0 |
-| 2021-03-05 | [0.1.0] | 0.12.0 |
+This release contains the following two breaking changes:
+- Disabling outputs now causes views to be re-arranged, so in the
+ context of idle system power management (for example when using
+ swaylock), it is no longer suitable to call wlr-randr {--off,--on}
+ to enable/disable outputs.
+- The "Drag" mouse-event and the unmaximize-on-move feature require
+ slightly different `<mousebind>` settings to feel natural, so suggest
+ updating any local `rc.xml` settings in accordance with
+ `docs/rc.xml.all`
+
+## [0.4.0] - 2021-12-31
+
+Compile with wlroots 0.15.0
+
+This release contains lots of internal changes, fixes and new features.
+A big thank you goes out to @ARDiDo, @bi4k8, @Joshua-Ashton,
+@jlindgren90, @Consolatis, @telent and @apbryan. The most notable
+feature-type changes are listed below.
+
+### Added
+
+- Add support for the following wayland protocols:
+ - `pointer_constraints` and `relative_pointer` - mostly for gaming.
+ Written-by: @Joshua-Ashton
+ - `viewporter` - needed for some games to fake modesets.
+ Written-by: @Joshua-Ashton
+ - `wlr_input_inhibit`. This enables swaylock to be run.
+ Written-by: @telent
+ - `wlr_foreign_toplevel`. This enables controlling windows from clients
+ such as waybar.
+ - `idle` and `idle_inhibit` (Written-by: @ARDiDo)
+- Support fullscreen mode.
+- Support drag-and-drop. Written-by: @ARDiDo
+- Add the following config options:
+ - Load default keybinds on `<keyboard><default />`
+ - `<keyboard><repeatRate>` and `<keyboard><repeatDelay>`
+ - Specify distance between views and output edges with `<core><gap>`
+ - `<core><adaptiveSync>`
+ - Set menu item font with `<theme><font place="MenuItem">`
+ - Allow `<theme><font>` without place="" attribute, thus enabling
+ simpler config files
+ - Support `<mousebind>` with `contexts` (e.g. `TitleBar`, `Left`,
+ `TLCorner`, `Frame`), `buttons` (e.g. `left`, `right`), and
+ `mouse actions` (e.g. `Press`, `DoubleClick`). Modifier keys are
+ also supported to handle configurations such as `alt` + mouse button
+ to move/resize windows. (Written-by: @bi4k8, @apbryan)
+ - `<libinput>` configuration. Written-by: @ARDiDo
+ - `<resistance><screenEdgeStrength>`
+- Support for primary selection. Written-by: @telent
+- Support 'alt-tab' on screen display when cycling between windows
+ including going backwards by pressing `shift` (Written-by: @Joshua-Ashton)
+ and cancelling with `escape` (Written-by: @jlindgren90)
+- Add the following theme options:
+ - set buttons colors individually (for iconify, close and maximize)
+ - `window.(in)active.label.text.color`
+ - `window.label.text.justify`
+ - OSD colors
+- Show application title in window decoration title bar
+- Handle double click on window decoration title bar
+- Support a 'resize-edges' area that is wider than than the visible
+ window decoration. This makes it easier to grab edges to resize
+ windows.
+- Add window actions 'MoveToEdge', 'ToggleMaximize', 'Close', 'Iconify',
+ 'ToggleDecorations', 'ToggleFullscreen', 'SnapToEdge', 'Focus', 'Raise',
+ 'Move', 'MoveToEdge', 'Resize', 'PreviousWindow', 'ShowMenu'
+- Add labwc.desktop for display managers
+- layer-shell:
+ - Take into account exclusive areas of clients (such as panels) when
+ maximizing windows
+ - Support popups
+- Handle xwayland `set_decorations` and xdg-shell-decoration requests.
+ Written-by: @Joshua-Ashton
+- Handle view min/max size better, including xwayland hint support.
+ Written-by: @Joshua-Ashton
+- Handle xwayland move/resize events. Written-by: @Joshua-Ashton
+- Support audio and monitor-brightness keys by default
+- Catch ctrl-alt-F1 to F12 to switch tty
+- Support `XCURSOR_THEME` and `XCURSOR_SIZE` environment variables
+- Support submenus including inline definitions
+
+### Changed
+
+- The config option `<lab><xdg_shell_server_side_deco>` has changed to
+ `<core><decoration>` (breaking change)
+
+## [0.3.0] - 2021-06-28
+
+Compile with wlroots 0.14.0
+
+### Added
+
+- Add config options `<focus><followMouse>` and `<focus><raiseOnFocus>`
+ (provided-by: Mikhail Kshevetskiy)
+- Do not use Clearlooks-3.4 theme by default, just use built-in theme
+- Fix bug which triggered Qt application segfault
+
+## [0.2.0] - 2021-04-15
+
+Compile with wlroots 0.13.0
+
+### Added
+
+- Support wlr-output-management protcol for setting output position, scale
+ and orientation with kanshi or similar
+- Support server side decoration rounded corners
+- Change built-in theme to match default GTK style
+- Add labwc-environment(5)
+- Call `wlr_output_enable_adaptive_sync()` if `LABWC_ADAPTIVE_SYNC` set
+
+## [0.1.0] - 2021-03-05
+
+Compile with wlroots 0.12.0 and wayland-server >=1.16
+
+### Added
+
+- Support xdg-shell and optionally xwayland-shell
+- Show xbm buttons for maximize, iconify and close
+- Support layer-shell protocol (partial)
+- Support damage tracking to reduce CPU usage
+- Support very basic root-menu implementation
+- Re-load config and theme on SIGHUP
+- Support simple configuration to auto-start applications, set
+ environment variables and specify theme, font and keybinds.
+- Support some basic theme settings for window borders and title bars
+- Support basic actions including Execute, Exit, NextWindow, Reconfigure and
+ ShowMenu
+
+[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/
[0.5.0]: https://github.com/labwc/labwc/releases/tag/0.5.0
[0.4.0]: https://github.com/labwc/labwc/releases/tag/0.4.0
[0.3.0]: https://github.com/labwc/labwc/releases/tag/0.3.0