From 3ea8a7087417e1d20b62c3caa2874cea2a7b04c6 Mon Sep 17 00:00:00 2001 From: nikitar020 <42252263+nikitar020@users.noreply.github.com> Date: Fri, 25 Jan 2019 18:17:04 +0000 Subject: [PATCH] Clear selection on "reset mode" sequence (#172) --- buffer/buffer.go | 8 ++++++++ terminal/csi.go | 1 + terminal/terminal.go | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/buffer/buffer.go b/buffer/buffer.go index 08389e0..f301374 100644 --- a/buffer/buffer.go +++ b/buffer/buffer.go @@ -282,6 +282,14 @@ func (buffer *Buffer) EndSelection(col uint16, viewRow uint16, complete bool) { } } +func (buffer *Buffer) ClearSelection() { + buffer.selectionStart = nil + buffer.selectionEnd = nil + buffer.selectionComplete = true + + buffer.emitDisplayChange() +} + func (buffer *Buffer) InSelection(col uint16, row uint16) bool { if buffer.selectionStart == nil || buffer.selectionEnd == nil { diff --git a/terminal/csi.go b/terminal/csi.go index ea39a6f..ec172af 100644 --- a/terminal/csi.go +++ b/terminal/csi.go @@ -422,6 +422,7 @@ func csiEraseCharactersHandler(params []string, terminal *Terminal) error { } func csiResetModeHandler(params []string, terminal *Terminal) error { + terminal.ActiveBuffer().ClearSelection() return csiSetMode(strings.Join(params, ""), false, terminal) } diff --git a/terminal/terminal.go b/terminal/terminal.go index 68b0c44..a9986be 100644 --- a/terminal/terminal.go +++ b/terminal/terminal.go @@ -89,7 +89,7 @@ func New(pty platform.Pty, logger *zap.SugaredLogger, config *config.Config) *Te }, platformDependentSettings: pty.GetPlatformDependentSettings(), } - t.activeBuffer = t.buffers[0] + t.activeBuffer = t.buffers[MainBuffer] return t }