From 9aa0b498c8bcaa58bf1e1e7ba4b4c5b4063ba162 Mon Sep 17 00:00:00 2001 From: Mats Estensen Date: Sun, 5 Apr 2026 10:11:10 +0200 Subject: [PATCH] fix: deliver MouseRight and MouseMiddle click events Set dragState on press and reset it on release for secondary and middle mouse buttons, matching the existing behavior for primary button. Previously these events were silently discarded because dragState was never set, causing the event loop to always hit NOT_DRAGGING case and return eventNone. --- tcell_driver.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tcell_driver.go b/tcell_driver.go index 6e9c12b4..e6698498 100644 --- a/tcell_driver.go +++ b/tcell_driver.go @@ -364,8 +364,10 @@ func (g *Gui) pollEvent() GocuiEvent { lastY = y case tcell.ButtonSecondary: mouseKey = MouseRight + dragState = MAYBE_DRAGGING case tcell.ButtonMiddle: mouseKey = MouseMiddle + dragState = MAYBE_DRAGGING default: } } @@ -377,7 +379,9 @@ func (g *Gui) pollEvent() GocuiEvent { case tcell.ButtonPrimary: dragState = NOT_DRAGGING case tcell.ButtonSecondary: + dragState = NOT_DRAGGING case tcell.ButtonMiddle: + dragState = NOT_DRAGGING default: } mouseMod = Modifier(lastMouseMod)