Skip to content

Commit 85c8c56

Browse files
committed
fix: prevent IDE from stealing focus when pressing ESC in terminal
1 parent 661f880 commit 85c8c56

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

src/main/kotlin/com/ashotn/opencode/relay/terminal/ClassicTuiPanel.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import org.jetbrains.plugins.terminal.LocalTerminalDirectRunner
1515
import org.jetbrains.plugins.terminal.ShellStartupOptions
1616
import org.jetbrains.plugins.terminal.ShellTerminalWidget
1717
import java.awt.BorderLayout
18+
import java.awt.event.KeyEvent
19+
import java.awt.event.KeyListener
1820
import java.lang.reflect.Proxy
1921
import javax.swing.JPanel
2022

@@ -98,6 +100,20 @@ class ClassicTuiPanel(
98100
}, this)
99101

100102
add(widget.component, BorderLayout.CENTER)
103+
104+
// Consume ESC key to prevent IDE from stealing focus from the inline terminal.
105+
widget.component.addKeyListener(object : KeyListener {
106+
override fun keyPressed(e: KeyEvent) {
107+
if (e.keyCode == KeyEvent.VK_ESCAPE) {
108+
e.consume()
109+
}
110+
}
111+
112+
override fun keyTyped(e: KeyEvent) {}
113+
114+
override fun keyReleased(e: KeyEvent) {}
115+
})
116+
101117
revalidate()
102118
repaint()
103119

0 commit comments

Comments
 (0)