summaryrefslogtreecommitdiffhomepage
path: root/packages/ext-layer-shell/tests/test_client.cpp
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-13 15:49:32 +0900
committerAdam Malczewski <[email protected]>2026-06-13 15:49:32 +0900
commit11812b0374d5de395e2c17532c6bf89a903ee043 (patch)
tree029f1d222aadf0d43f96fa071c313e4cdd119202 /packages/ext-layer-shell/tests/test_client.cpp
parent803fd2687a5f6ead0644f9c952bed6e3e4ef7ed9 (diff)
downloadunbox-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.cpp12
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);