diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/exp/BlockTerminalEventsHandler.kt b/plugins/terminal/src/org/jetbrains/plugins/terminal/exp/BlockTerminalEventsHandler.kt index e41b718d4961..ca247dd8acb9 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/exp/BlockTerminalEventsHandler.kt +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/exp/BlockTerminalEventsHandler.kt @@ -7,9 +7,9 @@ import java.awt.event.KeyEvent class BlockTerminalEventsHandler( session: TerminalSession, settings: JBTerminalSystemSettingsProviderBase, - private val outputModel: TerminalOutputModel, + outputModel: TerminalOutputModel, private val selectionModel: TerminalSelectionModel -) : SimpleTerminalEventsHandler(session, settings) { +) : SimpleTerminalEventsHandler(session, settings, outputModel) { override fun keyTyped(e: KeyEvent) { // Clear the block selection on typing if (selectionModel.primarySelection != null) { diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/exp/SimpleTerminalController.kt b/plugins/terminal/src/org/jetbrains/plugins/terminal/exp/SimpleTerminalController.kt index d139b85d436f..ac0180e58248 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/exp/SimpleTerminalController.kt +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/exp/SimpleTerminalController.kt @@ -42,7 +42,7 @@ class SimpleTerminalController( terminalModel.isCommandRunning = true setupContentListener() - val eventsHandler = SimpleTerminalEventsHandler(session, settings) + val eventsHandler = SimpleTerminalEventsHandler(session, settings, outputModel) setupKeyEventDispatcher(editor, settings, eventsHandler, outputModel, selectionModel, disposable = this) setupMouseListener(editor, settings, terminalModel, eventsHandler, disposable = this) terminalModel.withContentLock { diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/exp/SimpleTerminalEventsHandler.kt b/plugins/terminal/src/org/jetbrains/plugins/terminal/exp/SimpleTerminalEventsHandler.kt index 6d12046fd207..6c5dd0a9e410 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/exp/SimpleTerminalEventsHandler.kt +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/exp/SimpleTerminalEventsHandler.kt @@ -23,7 +23,8 @@ import javax.swing.SwingUtilities */ open class SimpleTerminalEventsHandler( private val session: TerminalSession, - private val settings: JBTerminalSystemSettingsProviderBase + private val settings: JBTerminalSystemSettingsProviderBase, + protected val outputModel: TerminalOutputModel, ) : TerminalEventsHandler { private var ignoreNextKeyTypedEvent: Boolean = false private var lastMotionReport: Point? = null @@ -37,6 +38,11 @@ open class SimpleTerminalEventsHandler( get() = session.model override fun keyTyped(e: KeyEvent) { + val selectionModel = outputModel.editor.selectionModel + if (selectionModel.hasSelection()) { + selectionModel.removeSelection() + } + if (ignoreNextKeyTypedEvent) { e.consume() return