Add a mechanism to insert non-model items into list contexts

Not used by anything yet.
This commit is contained in:
Stefan Haller 2023-08-08 12:46:04 +02:00
parent 4ee4f6f34b
commit 3df01aaff0
6 changed files with 325 additions and 25 deletions

View file

@ -83,9 +83,11 @@ func (self *ListController) handleLineChange(change int) error {
// we're not constantly re-rendering the main view.
if before != after {
if change == -1 {
checkScrollUp(self.context.GetViewTrait(), self.c.UserConfig, before, after)
checkScrollUp(self.context.GetViewTrait(), self.c.UserConfig,
self.context.ModelIndexToViewIndex(before), self.context.ModelIndexToViewIndex(after))
} else if change == 1 {
checkScrollDown(self.context.GetViewTrait(), self.c.UserConfig, before, after)
checkScrollDown(self.context.GetViewTrait(), self.c.UserConfig,
self.context.ModelIndexToViewIndex(before), self.context.ModelIndexToViewIndex(after))
}
return self.context.HandleFocus(types.OnFocusOpts{})
@ -112,7 +114,7 @@ func (self *ListController) HandleGotoBottom() error {
func (self *ListController) HandleClick(opts gocui.ViewMouseBindingOpts) error {
prevSelectedLineIdx := self.context.GetList().GetSelectedLineIdx()
newSelectedLineIdx := opts.Y
newSelectedLineIdx := self.context.ViewIndexToModelIndex(opts.Y)
alreadyFocused := self.isFocused()
if err := self.pushContextIfNotFocused(); err != nil {