diff options
| author | Adam Malczewski <[email protected]> | 2026-06-13 15:49:32 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-13 15:49:32 +0900 |
| commit | 11812b0374d5de395e2c17532c6bf89a903ee043 (patch) | |
| tree | 029f1d222aadf0d43f96fa071c313e4cdd119202 /packages/ext-layer-shell/tests/test_client.cpp | |
| parent | 803fd2687a5f6ead0644f9c952bed6e3e4ef7ed9 (diff) | |
| download | unbox-11812b0374d5de395e2c17532c6bf89a903ee043.tar.gz unbox-11812b0374d5de395e2c17532c6bf89a903ee043.zip | |
Slice 5b: config-driven keybindings — Super→fuzzel, Alt+Tab; kernel exports WAYLAND_DISPLAY
ext-keybindings (new core ext) reads unbox.toml: tap-Super spawns fuzzel,
Alt+Tab/Alt+Shift+Tab rotate focus across all toplevels, plus Alt+F1 and
Ctrl+Alt+Backspace (quit). ext-xdg-shell's hardcoded keybinds removed
(migrated to the toml).
Kernel setenv()s WAYLAND_DISPLAY at startup so extension-spawned clients
connect to unbox, not the launching session — fixes fuzzel "no monitors"
on the real seat.
build + build-asan green: third-party Mesa/EGL/DRM + vendored-RmlUi sanitizer
noise suppressed (suppressions/), our code stays leak-checked; a real
libwayland leak in the layer-shell client test fixed.
Harness: spawn-env + sanitizer-noise rules, diagnose-real-seat skill,
GLOSSARY keybinding/action/tap-binding. Real-seat verified on the CF-AX3.
Diffstat (limited to 'packages/ext-layer-shell/tests/test_client.cpp')
| -rw-r--r-- | packages/ext-layer-shell/tests/test_client.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/packages/ext-layer-shell/tests/test_client.cpp b/packages/ext-layer-shell/tests/test_client.cpp index 5c1d232..dd0b998 100644 --- a/packages/ext-layer-shell/tests/test_client.cpp +++ b/packages/ext-layer-shell/tests/test_client.cpp @@ -168,6 +168,18 @@ TEST_CASE("a real client's nil-output layer surface receives a configure") { if (c.surface != nullptr) { wl_surface_destroy(c.surface); } + if (c.layer_shell != nullptr) { + zwlr_layer_shell_v1_destroy(c.layer_shell); + } + if (c.output != nullptr) { + wl_output_destroy(c.output); + } + if (c.compositor != nullptr) { + wl_compositor_destroy(c.compositor); + } + if (c.registry != nullptr) { + wl_registry_destroy(c.registry); + } wl_display_flush(c.display); pump(*server, c.display); wl_display_disconnect(c.display); |
