fix: shortcut keys lead to terminal input

This commit is contained in:
hstyi
2025-01-23 10:32:43 +08:00
committed by hstyi
parent aa6ec8dd43
commit 346044b1ba

View File

@@ -1,5 +1,7 @@
package app.termora.terminal.panel
import app.termora.keymap.KeyShortcut
import app.termora.keymap.KeymapManager
import app.termora.terminal.PtyConnector
import app.termora.terminal.Terminal
import com.formdev.flatlaf.util.SystemInfo
@@ -12,8 +14,9 @@ class TerminalPanelKeyAdapter(
private val terminalPanel: TerminalPanel,
private val terminal: Terminal,
private val ptyConnector: PtyConnector
) :
KeyAdapter() {
) : KeyAdapter() {
private val activeKeymap get() = KeymapManager.getInstance().getActiveKeymap()
override fun keyTyped(e: KeyEvent) {
if (Character.isISOControl(e.keyChar)) {
@@ -52,6 +55,11 @@ class TerminalPanelKeyAdapter(
return
}
// 如果命中了全局快捷键,那么不处理
if (keyStroke.modifiers != 0 && activeKeymap.getActionIds(KeyShortcut(keyStroke)).isNotEmpty()) {
return
}
if (Character.isISOControl(e.keyChar)) {
terminal.getSelectionModel().clearSelection()
// 如果不为空表示已经发送过了,所以这里为空的时候再发送