From d22244d1352c2a63b2230ddd97a9ea0fc943dd07 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 12 Jul 2025 09:22:27 +0530 Subject: [PATCH] Micro-optimization --- tools/tui/loop/mouse.go | 9 +++++---- tools/tui/loop/run.go | 1 - 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/tui/loop/mouse.go b/tools/tui/loop/mouse.go index 0a72a52c6..a14e8c96a 100644 --- a/tools/tui/loop/mouse.go +++ b/tools/tui/loop/mouse.go @@ -218,8 +218,7 @@ func pixel_to_cell(px, length, cell_length int) int { return 0 } -func decode_sgr_mouse(text string, screen_size ScreenSize) *MouseEvent { - last_letter := text[len(text)-1] +func decode_sgr_mouse(text string, screen_size ScreenSize, last_letter byte) *MouseEvent { text = text[:len(text)-1] parts := strings.Split(text, ";") if len(parts) != 3 { @@ -276,8 +275,10 @@ func MouseEventFromCSI(csi string, screen_size ScreenSize) *MouseEvent { if last_char != 'm' && last_char != 'M' { return nil } - if !strings.HasPrefix(csi, "<") { + switch csi[0] { + case '<': + return decode_sgr_mouse(csi[1:], screen_size, last_char) + default: return nil } - return decode_sgr_mouse(csi[1:], screen_size) } diff --git a/tools/tui/loop/run.go b/tools/tui/loop/run.go index 673d108b6..6fef699da 100644 --- a/tools/tui/loop/run.go +++ b/tools/tui/loop/run.go @@ -119,7 +119,6 @@ func (self *Loop) handle_csi(raw []byte) (err error) { return self.OnFocusChange(csi == "I") } return nil - } ke := KeyEventFromCSI(csi) if ke != nil {