From d2023500a9e6e724b58d83ba6743677d5b627423 Mon Sep 17 00:00:00 2001 From: ItsLemmy Date: Wed, 26 Nov 2025 20:28:15 -0500 Subject: [PATCH] SmartPanelWindow: add a small delay in an attempt to improve cleanup --- Modules/MainScreen/SmartPanelWindow.qml | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Modules/MainScreen/SmartPanelWindow.qml b/Modules/MainScreen/SmartPanelWindow.qml index de47ff29..b883e5c4 100644 --- a/Modules/MainScreen/SmartPanelWindow.qml +++ b/Modules/MainScreen/SmartPanelWindow.qml @@ -47,6 +47,9 @@ PanelWindow { property bool closeWatchdogActive: false property bool openWatchdogActive: false + // Delay before unloading content (helps with shader cleanup on older Qt versions) + property int contentUnloadDelay: 100 + // Signals signal panelOpened signal panelClosed @@ -176,13 +179,21 @@ PanelWindow { closeWatchdogTimer.stop(); root.isPanelVisible = false; + + // Delay unloading content to ensure shaders are properly cleaned up (helps with older Qt versions) + contentUnloadDelayTimer.start(); + + Logger.d("SmartPanelWindow", "Panel close finalized, delaying content unload", placeholder.panelName); + } + + function completeContentUnload() { root.isPanelOpen = false; root.isClosing = false; root.opacityFadeComplete = false; PanelService.closedPanel(root); panelClosed(); - Logger.d("SmartPanelWindow", "Panel close finalized", placeholder.panelName); + Logger.d("SmartPanelWindow", "Content unloaded", placeholder.panelName); } // Fullscreen container for click-to-close and content @@ -433,6 +444,16 @@ PanelWindow { } } + // Timer to delay content unloading after panel closes (helps with shader cleanup on older Qt) + Timer { + id: contentUnloadDelayTimer + interval: root.contentUnloadDelay + repeat: false + onTriggered: { + root.completeContentUnload(); + } + } + // Watch for placeholder size animation completion to finalize close Connections { target: placeholder.panelItem