mirror of
https://github.com/TermoraDev/termora.git
synced 2026-01-16 10:22:58 +08:00
fix: shortcut keys lead to terminal input
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
package app.termora.terminal.panel
|
package app.termora.terminal.panel
|
||||||
|
|
||||||
|
import app.termora.keymap.KeyShortcut
|
||||||
|
import app.termora.keymap.KeymapManager
|
||||||
import app.termora.terminal.PtyConnector
|
import app.termora.terminal.PtyConnector
|
||||||
import app.termora.terminal.Terminal
|
import app.termora.terminal.Terminal
|
||||||
import com.formdev.flatlaf.util.SystemInfo
|
import com.formdev.flatlaf.util.SystemInfo
|
||||||
@@ -12,8 +14,9 @@ class TerminalPanelKeyAdapter(
|
|||||||
private val terminalPanel: TerminalPanel,
|
private val terminalPanel: TerminalPanel,
|
||||||
private val terminal: Terminal,
|
private val terminal: Terminal,
|
||||||
private val ptyConnector: PtyConnector
|
private val ptyConnector: PtyConnector
|
||||||
) :
|
) : KeyAdapter() {
|
||||||
KeyAdapter() {
|
|
||||||
|
private val activeKeymap get() = KeymapManager.getInstance().getActiveKeymap()
|
||||||
|
|
||||||
override fun keyTyped(e: KeyEvent) {
|
override fun keyTyped(e: KeyEvent) {
|
||||||
if (Character.isISOControl(e.keyChar)) {
|
if (Character.isISOControl(e.keyChar)) {
|
||||||
@@ -52,6 +55,11 @@ class TerminalPanelKeyAdapter(
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 如果命中了全局快捷键,那么不处理
|
||||||
|
if (keyStroke.modifiers != 0 && activeKeymap.getActionIds(KeyShortcut(keyStroke)).isNotEmpty()) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (Character.isISOControl(e.keyChar)) {
|
if (Character.isISOControl(e.keyChar)) {
|
||||||
terminal.getSelectionModel().clearSelection()
|
terminal.getSelectionModel().clearSelection()
|
||||||
// 如果不为空表示已经发送过了,所以这里为空的时候再发送
|
// 如果不为空表示已经发送过了,所以这里为空的时候再发送
|
||||||
|
|||||||
Reference in New Issue
Block a user