chore: Command + Q will not trigger a popup

This commit is contained in:
hstyi
2025-03-14 09:33:06 +08:00
committed by hstyi
parent 9bab9db875
commit 0248992dc3

View File

@@ -5,7 +5,6 @@ import app.termora.keymap.KeymapManager
import com.formdev.flatlaf.FlatClientProperties import com.formdev.flatlaf.FlatClientProperties
import com.formdev.flatlaf.FlatSystemProperties import com.formdev.flatlaf.FlatSystemProperties
import com.formdev.flatlaf.extras.FlatDesktop import com.formdev.flatlaf.extras.FlatDesktop
import com.formdev.flatlaf.extras.FlatDesktop.QuitResponse
import com.formdev.flatlaf.extras.FlatInspector import com.formdev.flatlaf.extras.FlatInspector
import com.formdev.flatlaf.ui.FlatTableCellBorder import com.formdev.flatlaf.ui.FlatTableCellBorder
import com.formdev.flatlaf.util.SystemInfo import com.formdev.flatlaf.util.SystemInfo
@@ -23,7 +22,6 @@ import org.apache.commons.lang3.SystemUtils
import org.json.JSONObject import org.json.JSONObject
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import org.tinylog.configuration.Configuration import org.tinylog.configuration.Configuration
import java.awt.KeyboardFocusManager
import java.io.File import java.io.File
import java.nio.channels.FileChannel import java.nio.channels.FileChannel
import java.nio.channels.FileLock import java.nio.channels.FileLock
@@ -124,29 +122,14 @@ class ApplicationRunner {
TermoraFrameManager.getInstance().createWindow().isVisible = true TermoraFrameManager.getInstance().createWindow().isVisible = true
if (SystemUtils.IS_OS_MAC_OSX) { if (SystemUtils.IS_OS_MAC_OSX) {
SwingUtilities.invokeLater { SwingUtilities.invokeLater { FlatDesktop.setQuitHandler { quitHandler() } }
FlatDesktop.setQuitHandler { response -> quitHandler(response) }
}
} }
} }
private fun quitHandler(response: QuitResponse) { private fun quitHandler() {
val keyboardFocusManager = KeyboardFocusManager.getCurrentKeyboardFocusManager()
if (OptionPane.showConfirmDialog(
keyboardFocusManager.focusedWindow,
I18n.getString("termora.quit-confirm", Application.getName()),
optionType = JOptionPane.YES_NO_OPTION,
) != JOptionPane.YES_OPTION
) {
response.cancelQuit()
return
}
for (frame in TermoraFrameManager.getInstance().getWindows()) { for (frame in TermoraFrameManager.getInstance().getWindows()) {
frame.dispose() frame.dispose()
} }
} }
private fun loadSettings() { private fun loadSettings() {