| Date | All Changes | wlroots version | lines-of-code |
|------------|---------------|-----------------|---------------|
-| 2025-11-15 | [unreleased] | 0.19.2 | 28825 |
+| 2025-12-06 | [unreleased] | 0.19.2 | 28927 |
| 2025-10-10 | [0.9.2] | 0.19.1 | 28818 |
| 2025-08-02 | [0.9.1] | 0.19.0 | 28605 |
| 2025-07-11 | [0.9.0] | 0.19.0 | 28586 |
[unreleased-commits]
+This release contains a good amount of bug-fixes, code simplification and
+small usability improvements.
+
+With the stability that comes with having tracked `wlroots 0.19` for a decent
+length of time, this feels like the best version of labwc so far.
+
+In terms of new features, it is worth drawing attention to the click support in
+the window-switcher on-screen-display by @tokyo4j [#3186] which has frequently
+been requested by users.
+
+As a general note to users, we discourage the use of empty strings in the
+`rc.xml` configuration file, for example `<theme><name></name></theme>`. There
+are only a few areas left where empty string are ignored (like under
+`<libinput>`) but the intent for future releases is to consistently read empty
+strings as empty strings. As a preparation, this release has added some warnings
+for empty strings that are currently ignored, so that users can take action.
+Also, the example `docs/rc.xml.all` has been updated to remove poor examples in
+this regard.
+
+A big thank you to all involved in this release.
+
### Added
+- Replace `<snapping><range>` with `<snapping><range inner="" outer="">` to
+ provide more granular control when configuring the size of snapping areas
+ (including `<topMaximize>`) on output edges with and without adjacent outputs.
+ @elviosak [#3241]
+- Add `direction` option to `Resize` action supporting the values `up-left`,
+ `up`, `up-right`, `left`, `right`, `down-left`, `down`, `down-right`. This
+ mirrors Fluxbox's `StartResizing [corner]` behavior. @mbroemme [#3239]
- Allow the use of the `sendEventsMode` configuration option on keyboards in
order to disable keyboard input. @cillian64 [#3208]
- Support the following new `<windowSwitcher>` configuration options:
- `<osd thumbnailLabelFormat="%T">` to specify the label text in each item in
the thumbnail style window-switcher. @elviosak [#3187]
- - `<osd output="all|pointer|keyboard">` to specify which monitor(s) to show
- the OSD(s) on. @dntxi [#3201]
+ - `<osd output="all|focused|cursor">` to specify which monitor(s) to show
+ the OSD(s) on. @dntxi [#3201] [#3248]
- Support window-switcher OSD item click to focus window @tokyo4j [#3186]
- With the window-switcher custom field state specifiers 's' and 'S', show 's'
for shaded window @domo141 [#2895]
### Fixed
+- Flush XCB connection to mitigate race between Raise and input. @jlindgren90
+ [#3249]
+- Fix disappearing XWayland popups with some (less commonly used) clients like
+ Imagemagick's `display` command, `xshogi`, `xedit` and `xfig` caused by
+ too many surface-pings. @jlindgren90 [#3152] [#3246]
+- Center small fullscreen xdg-shell windows and add black background fill. This
+ increases spec compliance and improves the user experience with games like
+ SWAT4, Quake III and Splinter Cell 3. @jlindgren90 [#3233]
+- When followMouse=yes, update focus on cursor entering SSD rather than just the
+ client surface. Fixes a regression in 885919f. @tokyo4j [#3211]
+- Set all foreign-toplevel initial states correctly. This is not believed to fix
+ any particular user-issue, but just feels safer. @jlindgren90 [#3217]
- Update layer-shell client top layer visiblity on unmap instead of destroy
because it is possible for fullscreen xwayland windows to be unmapped without
being destroyed, and in this case the top layer visibility needs to be updated
### Changed
+- `<snapping><range>` is deprecated. Use `<snapping><range inner="" outer="">`
+ instead. @elviosak [#3241]
+- When cycling through windows (typically with Alt-Tab) there are two minor
+ user-visible changes. For most users these will not be noticeable, but are
+ mentioned here for completeness.
+ - The initially selected window will now be the one that previously had
+ keyboard focus when cycling commenced rather than the second topmost one.
+ @tokyo4j [#3236]
+ - Windows that are spawned whilst cycling can no longer be cycled through. The
+ intent is to fix this in future releases. @tokyo4j [#3236]
- Refactor window switcher configuration to put attributes `show` and `style`
under `<windowSwitcher><osd>` rather than directly under `<windowSwitcher>`.
The old configuration syntax will remain supported for at least one release.
[#3145]: https://github.com/labwc/labwc/pull/3145
[#3146]: https://github.com/labwc/labwc/pull/3146
[#3148]: https://github.com/labwc/labwc/pull/3148
+[#3152]: https://github.com/labwc/labwc/pull/3152
[#3153]: https://github.com/labwc/labwc/pull/3153
[#3157]: https://github.com/labwc/labwc/pull/3157
[#3158]: https://github.com/labwc/labwc/pull/3158
[#3199]: https://github.com/labwc/labwc/pull/3199
[#3201]: https://github.com/labwc/labwc/pull/3201
[#3208]: https://github.com/labwc/labwc/pull/3208
+[#3211]: https://github.com/labwc/labwc/pull/3211
+[#3217]: https://github.com/labwc/labwc/pull/3217
+[#3233]: https://github.com/labwc/labwc/pull/3233
+[#3236]: https://github.com/labwc/labwc/pull/3236
+[#3239]: https://github.com/labwc/labwc/pull/3239
+[#3241]: https://github.com/labwc/labwc/pull/3241
+[#3246]: https://github.com/labwc/labwc/pull/3246
+[#3248]: https://github.com/labwc/labwc/pull/3248
+[#3249]: https://github.com/labwc/labwc/pull/3249