chore: improve exit

This commit is contained in:
hstyi
2025-04-12 16:38:39 +08:00
committed by hstyi
parent 96133e5abf
commit 4d71c6cd05

View File

@@ -32,6 +32,7 @@ import java.awt.desktop.AppReopenedEvent
import java.awt.desktop.AppReopenedListener import java.awt.desktop.AppReopenedListener
import java.awt.desktop.SystemEventListener import java.awt.desktop.SystemEventListener
import java.awt.event.ActionEvent import java.awt.event.ActionEvent
import java.awt.event.WindowEvent
import java.util.* import java.util.*
import java.util.concurrent.CountDownLatch import java.util.concurrent.CountDownLatch
import javax.imageio.ImageIO import javax.imageio.ImageIO
@@ -85,9 +86,6 @@ class ApplicationRunner {
// 启动主窗口 // 启动主窗口
val startMainFrame = measureTimeMillis { startMainFrame() } val startMainFrame = measureTimeMillis { startMainFrame() }
// 设置托盘
val setupSystemTray = measureTimeMillis { SwingUtilities.invokeLater { setupSystemTray() } }
if (log.isDebugEnabled) { if (log.isDebugEnabled) {
log.debug("printSystemInfo: {}ms", printSystemInfo) log.debug("printSystemInfo: {}ms", printSystemInfo)
log.debug("openDatabase: {}ms", openDatabase) log.debug("openDatabase: {}ms", openDatabase)
@@ -96,7 +94,6 @@ class ApplicationRunner {
log.debug("setupLaf: {}ms", setupLaf) log.debug("setupLaf: {}ms", setupLaf)
log.debug("openDoor: {}ms", openDoor) log.debug("openDoor: {}ms", openDoor)
log.debug("startMainFrame: {}ms", startMainFrame) log.debug("startMainFrame: {}ms", startMainFrame)
log.debug("setupSystemTray: {}ms", setupSystemTray)
} }
}.let { }.let {
if (log.isDebugEnabled) { if (log.isDebugEnabled) {
@@ -126,7 +123,7 @@ class ApplicationRunner {
TermoraFrameManager.getInstance().createWindow().isVisible = true TermoraFrameManager.getInstance().createWindow().isVisible = true
if (SystemUtils.IS_OS_MAC_OSX) { if (SystemInfo.isMacOS) {
SwingUtilities.invokeLater { SwingUtilities.invokeLater {
try { try {
@@ -141,6 +138,9 @@ class ApplicationRunner {
// Command + Q // Command + Q
FlatDesktop.setQuitHandler { quitHandler() } FlatDesktop.setQuitHandler { quitHandler() }
} }
} else if (SystemInfo.isWindows) {
// 设置托盘
SwingUtilities.invokeLater { setupSystemTray() }
} }
} }
@@ -179,7 +179,7 @@ class ApplicationRunner {
val windows = TermoraFrameManager.getInstance().getWindows() val windows = TermoraFrameManager.getInstance().getWindows()
for (frame in windows) { for (frame in windows) {
frame.dispose() frame.dispatchEvent(WindowEvent(frame, WindowEvent.WINDOW_CLOSED))
} }
Disposer.dispose(TermoraFrameManager.getInstance()) Disposer.dispose(TermoraFrameManager.getInstance())