From bb0f1e84ce16d2aa1515450b376a5b67ba3b89d0 Mon Sep 17 00:00:00 2001 From: LemmyCook Date: Thu, 4 Sep 2025 10:16:15 -0400 Subject: [PATCH 1/3] IPC: Fail safe when no activeWindow detected --- Modules/IPC/IPCManager.qml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Modules/IPC/IPCManager.qml b/Modules/IPC/IPCManager.qml index 61487b4..285b876 100644 --- a/Modules/IPC/IPCManager.qml +++ b/Modules/IPC/IPCManager.qml @@ -11,10 +11,13 @@ Item { // Using Wayland protocols to get focused window then determine which screen it's on. function getActiveScreen() { const activeWindow = ToplevelManager.activeToplevel - if (activeWindow.screens.length > 0) { - return activeWindow.screens[0] + if (activeWindow && activeWindow.screens.length > 0) { + var screen = activeWindow.screens[0] + return screen } - return null + + // Fall back to the primary screen + return Quickshell.screens[0] } IpcHandler { From 7fafda4747fe0759b2a07641532941f0d804ee6b Mon Sep 17 00:00:00 2001 From: LemmyCook Date: Thu, 4 Sep 2025 10:16:37 -0400 Subject: [PATCH 2/3] NPanel: clear openedPanel attempt --- Services/PanelService.qml | 11 ++++++++++- Widgets/NPanel.qml | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Services/PanelService.qml b/Services/PanelService.qml index 9a37aeb..d2b5113 100644 --- a/Services/PanelService.qml +++ b/Services/PanelService.qml @@ -12,9 +12,12 @@ Singleton { // Currently opened panel property var openedPanel: null + readonly property bool hasOpenedPanel: (openedPanel !== null) property var registeredPanels: ({}) + + // Register this panel function registerPanel(panel) { registeredPanels[panel.objectName] = panel @@ -33,9 +36,15 @@ Singleton { // Helper to keep only one panel open at any time function willOpenPanel(panel) { - if (openedPanel && openedPanel != panel) { + if (openedPanel && openedPanel !== panel) { openedPanel.close() } openedPanel = panel } + + function closedPanel(panel) { + if (openedPanel && openedPanel === panel) { + openedPanel = null + } + } } diff --git a/Widgets/NPanel.qml b/Widgets/NPanel.qml index d6326bf..28abeee 100644 --- a/Widgets/NPanel.qml +++ b/Widgets/NPanel.qml @@ -125,6 +125,7 @@ Loader { root.closed() active = false useButtonPosition = false // Reset button position usage + PanelService.closedPanel(root) } // ----------------------------------------- From 2fda29c1859162f9bbb93a7901bbf6439aa752e6 Mon Sep 17 00:00:00 2001 From: LemmyCook Date: Thu, 4 Sep 2025 10:17:02 -0400 Subject: [PATCH 3/3] autoformatting --- Services/PanelService.qml | 2 -- 1 file changed, 2 deletions(-) diff --git a/Services/PanelService.qml b/Services/PanelService.qml index d2b5113..8922034 100644 --- a/Services/PanelService.qml +++ b/Services/PanelService.qml @@ -16,8 +16,6 @@ Singleton { property var registeredPanels: ({}) - - // Register this panel function registerPanel(panel) { registeredPanels[panel.objectName] = panel