From e3d43111e84ac9916629000057fd3bacedba7593 Mon Sep 17 00:00:00 2001 From: hstyi Date: Thu, 17 Jul 2025 10:31:36 +0800 Subject: [PATCH] fix: memory leaks --- src/main/kotlin/app/termora/TermoraFrameManager.kt | 3 +++ src/main/kotlin/app/termora/TermoraRestarter.kt | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/app/termora/TermoraFrameManager.kt b/src/main/kotlin/app/termora/TermoraFrameManager.kt index 3efd047..4c654fb 100644 --- a/src/main/kotlin/app/termora/TermoraFrameManager.kt +++ b/src/main/kotlin/app/termora/TermoraFrameManager.kt @@ -92,6 +92,9 @@ class TermoraFrameManager : Disposable { window.addWindowListener(object : WindowAdapter() { override fun windowClosed(e: WindowEvent) { + // 销毁子窗口 + TermoraRestarter.getInstance().disposeChildren(window) + // 存储位置信息 saveFrameRectangle(window) diff --git a/src/main/kotlin/app/termora/TermoraRestarter.kt b/src/main/kotlin/app/termora/TermoraRestarter.kt index 17279d3..0d4c676 100644 --- a/src/main/kotlin/app/termora/TermoraRestarter.kt +++ b/src/main/kotlin/app/termora/TermoraRestarter.kt @@ -129,7 +129,7 @@ class TermoraRestarter { Disposer.dispose(instance) } - private fun disposeChildren(window: Window) { + fun disposeChildren(window: Window) { for (win in Window.getWindows()) { if (win is JDialog) { if (win.owner == window) {