From c6b33ea8282ba012cb211a89046289cb01055a6b Mon Sep 17 00:00:00 2001 From: hstyi Date: Tue, 12 Aug 2025 15:13:18 +0800 Subject: [PATCH] chore: improve settings action --- .../app/termora/actions/SettingsAction.kt | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/app/termora/actions/SettingsAction.kt b/src/main/kotlin/app/termora/actions/SettingsAction.kt index 7fac081..d6c6f2c 100644 --- a/src/main/kotlin/app/termora/actions/SettingsAction.kt +++ b/src/main/kotlin/app/termora/actions/SettingsAction.kt @@ -1,9 +1,6 @@ package app.termora.actions -import app.termora.ApplicationScope -import app.termora.I18n -import app.termora.Icons -import app.termora.SettingsDialog +import app.termora.* import com.formdev.flatlaf.extras.FlatDesktop import org.apache.commons.lang3.StringUtils import java.awt.KeyboardFocusManager @@ -32,13 +29,13 @@ class SettingsAction private constructor() : AnAction( private val action get() = this init { - FlatDesktop.setPreferencesHandler { - val owner = KeyboardFocusManager.getCurrentKeyboardFocusManager().focusOwner - // Doorman 的情况下不允许打开 - if (owner != null && ApplicationScope.windowScopes().isNotEmpty()) { - actionPerformed(ActionEvent(owner, ActionEvent.ACTION_PERFORMED, StringUtils.EMPTY)) + FlatDesktop.setPreferencesHandler(object : Runnable { + override fun run() { + val focusedWindow = KeyboardFocusManager.getCurrentKeyboardFocusManager().focusedWindow ?: return + if (focusedWindow !is TermoraFrame) return + actionPerformed(ActionEvent(focusedWindow, ActionEvent.ACTION_PERFORMED, StringUtils.EMPTY)) } - } + }) } override fun actionPerformed(evt: AnActionEvent) {