- API: add
gtk_layer_set_respect_close()/gtk_layer_get_respect_close() - Fix: ignore
.closedevent by default (see GTK3 LS #209) - Fix: use-after-free when screen lock fails (106)
- Fix: don't remap unmapped windows on monitor change (104)
- Tests: support optionally running under Valgrind
- Session lock: add
::monitorsignal to make correctly responding to monitor/output changes easier when implementing a lock screen - Session lock: user code no longer needs to call
gtk_window_present()for lock screen windows - Examples: Refactored session lock examples for clearity and the API update
- Fix: unmap and deref GTK windows when they are no longer in use
- Tests: refactors and documentation for ease-of-use
- Tests: optimization (10X speedup)
- Tests: test outputs being connected and disconnected is correctly handled
- Tests: use asan/ubsan in CI to detect memory issues
- Bump required meson version to 0.54.0
- Control which symbols are exported, do not expose private/unstable functions which have never been in public headers
- Correct annotations in doc comments
- Automatically remap surfaces when monitors change
This release includes two important new features.
A 2nd Wayland protocol, is used to build lock screens for these compositors.
Hack for running arbitrary Wayland windows as Layer Shell surfaces without recompiling. More details here.
Changelog:
- Major refactor and improvements to internal architecture, made new features possible but this release is more likely to introduce bugs than others
- Use
RTLD_NEXTin libwayland-shim, dlopening libwayland is no longer needed - Add support for
ext_session_lock_v1protocol (thanks @happenslol for the initial implementation!) - Add examples, tests and docs for Session Lock support
- Add and document
liblayer-shell-preload.so
- Fix protocol error on Wayfire, due to sending zwlr_layer_shell_surface_v1->configure too early
- Fix crash when hovering over a tooltip on Hyprland, due to using an old copy of xdg-shell.xml
- Fix protocol error on GTK4 >=4.16 on KDE and Hyprland, due to request arguments including references to client-only objects
- Add xdg-dialog-v1 to the mock server used by the tests, so the invalid argument bug is regression tested
- Drop Lua example and smoke test (the library should work with Lua just as well as before, but this is no longer tested or officially supported)
- Fix and suppress various warnings
- Tests: make tests compatible with new libwayland format
- Tests: fix
integration-test-menu-popupby sending wl_buffer.release in mock server - Fix: dlopen
libwayland-client.so.0in addition tolibwayland-client.so, fixes #39
- Fix tests on Arch
- Realize and unrealize on remap instead of setting visibility
- Fix major use-after-free bug causing many crashes
- Add lua example
- Add links to Rust and Ruby bindings
- Fix doc name conflicts with GTK3 library version
- Add smoke tests
- Port library and examples from GTK3 to GTK4
- Remove deprecated functions
gtk_layer_set_keyboard_interactivity()andgtk_layer_get_keyboard_interactivity()(gtk_layer_set_keyboard_mode()andgtk_layer_get_keyboard_mode()can be used instead) - Change how layer surface window size is controlled, use
gtk_window_set_default_size()now - Build documentation with GitHub actions and host with GitHub Pages
- EDIT: Change license from LGPL to MIT (most of the gtk-layer-shell code was always MIT, and the LGPL bits have all been dropped)