From 37197b8e9a3eab0d4700fb5c6776d9be0b020a30 Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Fri, 11 Jul 2025 09:48:09 +0200 Subject: [PATCH] Add proper double-click handling for list views Previously a click was detected as a double-click whenever the click was on the already selected line, regardless of how long ago the last click was (or even when it wasn't selected by clicking at all). Now that gocui supports proper double-click detection, we can do better. --- pkg/gui/controllers/list_controller.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/gui/controllers/list_controller.go b/pkg/gui/controllers/list_controller.go index 2fbadd2fe..f5f7c9289 100644 --- a/pkg/gui/controllers/list_controller.go +++ b/pkg/gui/controllers/list_controller.go @@ -162,7 +162,6 @@ func (self *ListController) HandleRangeSelectUp() error { } func (self *ListController) HandleClick(opts gocui.ViewMouseBindingOpts) error { - prevSelectedLineIdx := self.context.GetList().GetSelectedLineIdx() newSelectedLineIdx := self.context.ViewIndexToModelIndex(opts.Y) alreadyFocused := self.isFocused() @@ -176,7 +175,7 @@ func (self *ListController) HandleClick(opts gocui.ViewMouseBindingOpts) error { self.context.GetList().SetSelection(newSelectedLineIdx) - if prevSelectedLineIdx == newSelectedLineIdx && alreadyFocused && self.context.GetOnClick() != nil { + if opts.IsDoubleClick && alreadyFocused && self.context.GetOnClick() != nil { return self.context.GetOnClick()() } self.context.HandleFocus(types.OnFocusOpts{})