@@ -3,6 +3,7 @@ package controllers
3
3
import (
4
4
"github.com/jesseduffield/gocui"
5
5
"github.com/jesseduffield/lazygit/pkg/gui/types"
6
+ "github.com/samber/lo"
6
7
)
7
8
8
9
// This controller is for all contexts that can focus their main view.
@@ -60,23 +61,31 @@ func (self *SwitchToFocusedMainViewController) Context() types.Context {
60
61
}
61
62
62
63
func (self * SwitchToFocusedMainViewController ) onClickMain (opts gocui.ViewMouseBindingOpts ) error {
63
- return self .focusMainView ("main" )
64
+ return self .focusMainView ("main" , opts . Y )
64
65
}
65
66
66
67
func (self * SwitchToFocusedMainViewController ) onClickSecondary (opts gocui.ViewMouseBindingOpts ) error {
67
- return self .focusMainView ("secondary" )
68
+ return self .focusMainView ("secondary" , opts . Y )
68
69
}
69
70
70
71
func (self * SwitchToFocusedMainViewController ) handleFocusMainView () error {
71
- return self .focusMainView ("main" )
72
+ return self .focusMainView ("main" , - 1 )
72
73
}
73
74
74
- func (self * SwitchToFocusedMainViewController ) focusMainView (mainViewName string ) error {
75
+ func (self * SwitchToFocusedMainViewController ) focusMainView (mainViewName string , clickedViewLineIdx int ) error {
75
76
mainViewContext := self .c .Helpers ().Window .GetContextForWindow (mainViewName )
76
77
mainViewContext .SetParentContext (self .context )
77
78
if context , ok := mainViewContext .(types.ISearchableContext ); ok {
78
79
context .ClearSearchString ()
79
80
}
80
- self .c .Context ().Push (mainViewContext , types.OnFocusOpts {})
81
+ onFocusOpts := types.OnFocusOpts {ClickedWindowName : mainViewName }
82
+ if clickedViewLineIdx >= 0 {
83
+ onFocusOpts .ClickedViewLineIdx = clickedViewLineIdx
84
+ } else {
85
+ mainView := mainViewContext .GetView ()
86
+ lineIdx := mainView .OriginY () + mainView .Height ()/ 2
87
+ onFocusOpts .ClickedViewLineIdx = lo .Clamp (lineIdx , 0 , mainView .LinesHeight ()- 1 )
88
+ }
89
+ self .c .Context ().Push (mainViewContext , onFocusOpts )
81
90
return nil
82
91
}
0 commit comments