diff --git a/shell/Ui/Panel.qml b/shell/Ui/Panel.qml index 7b7dfdf8..b8866b5b 100644 --- a/shell/Ui/Panel.qml +++ b/shell/Ui/Panel.qml @@ -45,17 +45,15 @@ Item { id: panelController } - property IpcHandler _ipc: manageIpc ? ipcComponent.createObject(root) : null + IpcHandler { + enabled: root.manageIpc && root.ipcTarget !== "" + target: root.ipcTarget - property Component ipcComponent: Component { - IpcHandler { - target: root.ipcTarget - function open(): void { root.open() } - function close(): void { root.close() } - function show(): void { root.open() } - function hide(): void { root.close() } - function toggle(): void { root.toggle() } - } + function open(): void { root.open() } + function close(): void { root.close() } + function show(): void { root.open() } + function hide(): void { root.close() } + function toggle(): void { root.toggle() } } } diff --git a/test/shell.d/runtime-smoke-test.sh b/test/shell.d/runtime-smoke-test.sh index 0f364d4f..2210373b 100755 --- a/test/shell.d/runtime-smoke-test.sh +++ b/test/shell.d/runtime-smoke-test.sh @@ -214,6 +214,12 @@ jq -e ' pass "runtime geometry keeps update before indicators" +for panel_id in omarchy.audio omarchy.bluetooth omarchy.monitor omarchy.network omarchy.power; do + shell_ipc "$panel_id" open >/dev/null || fail_with_log "direct panel IPC opens $panel_id" + shell_ipc "$panel_id" close >/dev/null || fail_with_log "direct panel IPC closes $panel_id" +done +pass "direct panel IPC opens and closes default panels" + HOME="$test_home" OMARCHY_PATH="$test_root" PATH="$ROOT/bin:$PATH" "$ROOT/bin/omarchy-config-shell-bar" remove omarchy.audio for _ in {1..80}; do