mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-09-11 16:16:28 -04:00
The focused main view's space binding delegates to the side panel beneath it, but the two handlers were asymmetric: the patch-toggle handler did its own re-render and re-established the selection itself, while the staging handler returned a focusViewName so the dispatcher (stageRange) could do the reveal-and-focus dance on its behalf. That split blocks collapsing the per-command handler channels into one, since the two have different return types. Make staging match the toggle: GetOnStageFocusedMainView returns plain error, and the FilesController handler does the post-staging reveal and pane focus itself. The reveal/select-mode logic the two handlers shared (collapse a range to a line, preserve the change-line ordinal across the re-render, re-expand a hunk) is extracted into revealSelectionAfterPrimaryAction, with mainContextForViewName resolving a main view name to its context. The dispatcher is now uniform: read the selected range, hand it to whichever handler the panel registered. Behavior-preserving. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package controllers
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/gocui"
|
|
"github.com/jesseduffield/lazygit/pkg/gui/types"
|
|
)
|
|
|
|
type baseController struct{}
|
|
|
|
func (self *baseController) GetKeybindings(opts types.KeybindingsOpts) []*types.Binding {
|
|
return nil
|
|
}
|
|
|
|
func (self *baseController) GetMouseKeybindings(opts types.KeybindingsOpts) []*gocui.ViewMouseBinding {
|
|
return nil
|
|
}
|
|
|
|
func (self *baseController) GetOnDoubleClick() func() error {
|
|
return nil
|
|
}
|
|
|
|
func (self *baseController) GetOnClickFocusedMainView() func(mainViewName string, clickedLineIdx int) error {
|
|
return nil
|
|
}
|
|
|
|
func (self *baseController) GetOnStageFocusedMainView() func(mainViewName string, firstLineIdx int, lastLineIdx int) error {
|
|
return nil
|
|
}
|
|
|
|
func (self *baseController) GetOnTogglePatchFocusedMainView() func(mainViewName string, firstLineIdx int, lastLineIdx int) error {
|
|
return nil
|
|
}
|
|
|
|
func (self *baseController) GetOnClick() func(opts gocui.ViewMouseBindingOpts) error {
|
|
return nil
|
|
}
|
|
|
|
func (self *baseController) GetOnRenderToMain() func() {
|
|
return nil
|
|
}
|
|
|
|
func (self *baseController) GetOnFocus() func(types.OnFocusOpts) {
|
|
return nil
|
|
}
|
|
|
|
func (self *baseController) GetOnFocusLost() func(types.OnFocusLostOpts) {
|
|
return nil
|
|
}
|
|
|
|
func (self *baseController) GetOnQuit() func() {
|
|
return nil
|
|
}
|