diff --git a/pkg/gui/context/patch_explorer_context.go b/pkg/gui/context/patch_explorer_context.go index 330f0a557..6ecff8856 100644 --- a/pkg/gui/context/patch_explorer_context.go +++ b/pkg/gui/context/patch_explorer_context.go @@ -53,7 +53,7 @@ func NewPatchExplorerContext( func(selectedLineIdx int) error { ctx.GetMutex().Lock() defer ctx.GetMutex().Unlock() - ctx.NavigateTo(ctx.c.Context().IsCurrent(ctx), selectedLineIdx) + ctx.NavigateTo(selectedLineIdx) return nil }), ) @@ -79,15 +79,15 @@ func (self *PatchExplorerContext) GetIncludedLineIndices() []int { return self.getIncludedLineIndices() } -func (self *PatchExplorerContext) RenderAndFocus(isFocused bool) { - self.setContent(isFocused) +func (self *PatchExplorerContext) RenderAndFocus() { + self.setContent() self.FocusSelection() self.c.Render() } -func (self *PatchExplorerContext) Render(isFocused bool) { - self.setContent(isFocused) +func (self *PatchExplorerContext) Render() { + self.setContent() self.c.Render() } @@ -97,8 +97,8 @@ func (self *PatchExplorerContext) Focus() { self.c.Render() } -func (self *PatchExplorerContext) setContent(isFocused bool) { - self.GetView().SetContent(self.GetContentToRender(isFocused)) +func (self *PatchExplorerContext) setContent() { + self.GetView().SetContent(self.GetContentToRender()) } func (self *PatchExplorerContext) FocusSelection() { @@ -119,19 +119,19 @@ func (self *PatchExplorerContext) FocusSelection() { view.SetCursorY(endIdx - newOriginY) } -func (self *PatchExplorerContext) GetContentToRender(isFocused bool) string { +func (self *PatchExplorerContext) GetContentToRender() string { if self.GetState() == nil { return "" } - return self.GetState().RenderForLineIndices(isFocused, self.GetIncludedLineIndices()) + return self.GetState().RenderForLineIndices(self.GetIncludedLineIndices()) } -func (self *PatchExplorerContext) NavigateTo(isFocused bool, selectedLineIdx int) { +func (self *PatchExplorerContext) NavigateTo(selectedLineIdx int) { self.GetState().SetLineSelectMode() self.GetState().SelectLine(selectedLineIdx) - self.RenderAndFocus(isFocused) + self.RenderAndFocus() } func (self *PatchExplorerContext) GetMutex() *deadlock.Mutex { diff --git a/pkg/gui/controllers/helpers/patch_building_helper.go b/pkg/gui/controllers/helpers/patch_building_helper.go index b238d252c..63744167f 100644 --- a/pkg/gui/controllers/helpers/patch_building_helper.go +++ b/pkg/gui/controllers/helpers/patch_building_helper.go @@ -98,7 +98,7 @@ func (self *PatchBuildingHelper) RefreshPatchBuildingPanel(opts types.OnFocusOpt return } - mainContent := context.GetContentToRender(true) + mainContent := context.GetContentToRender() self.c.Contexts().CustomPatchBuilder.FocusSelection() diff --git a/pkg/gui/controllers/helpers/staging_helper.go b/pkg/gui/controllers/helpers/staging_helper.go index d7b202525..a6b870517 100644 --- a/pkg/gui/controllers/helpers/staging_helper.go +++ b/pkg/gui/controllers/helpers/staging_helper.go @@ -73,8 +73,8 @@ func (self *StagingHelper) RefreshStagingPanel(focusOpts types.OnFocusOpts) { mainState := mainContext.GetState() secondaryState := secondaryContext.GetState() - mainContent := mainContext.GetContentToRender(!secondaryFocused) - secondaryContent := secondaryContext.GetContentToRender(secondaryFocused) + mainContent := mainContext.GetContentToRender() + secondaryContent := secondaryContext.GetContentToRender() mainContext.GetMutex().Unlock() secondaryContext.GetMutex().Unlock() diff --git a/pkg/gui/controllers/patch_explorer_controller.go b/pkg/gui/controllers/patch_explorer_controller.go index 3e5e1539d..d84ff48a0 100644 --- a/pkg/gui/controllers/patch_explorer_controller.go +++ b/pkg/gui/controllers/patch_explorer_controller.go @@ -302,7 +302,7 @@ func (self *PatchExplorerController) withRenderAndFocus(f func() error) func() e return err } - self.context.RenderAndFocus(self.isFocused()) + self.context.RenderAndFocus() return nil }) } diff --git a/pkg/gui/controllers/staging_controller.go b/pkg/gui/controllers/staging_controller.go index 769cba68a..4ae9a946b 100644 --- a/pkg/gui/controllers/staging_controller.go +++ b/pkg/gui/controllers/staging_controller.go @@ -132,8 +132,6 @@ func (self *StagingController) GetOnFocusLost() func(types.OnFocusLostOpts) { if opts.NewContextKey != self.otherContext.GetKey() { self.c.Views().Staging.Wrap = true self.c.Views().StagingSecondary.Wrap = true - self.c.Contexts().Staging.Render(false) - self.c.Contexts().StagingSecondary.Render(false) } } } diff --git a/pkg/gui/patch_exploring/state.go b/pkg/gui/patch_exploring/state.go index 1535e1c0f..4c20b7a51 100644 --- a/pkg/gui/patch_exploring/state.go +++ b/pkg/gui/patch_exploring/state.go @@ -249,7 +249,7 @@ func (s *State) AdjustSelectedLineIdx(change int) { s.SelectLine(s.selectedLineIdx + change) } -func (s *State) RenderForLineIndices(isFocused bool, includedLineIndices []int) string { +func (s *State) RenderForLineIndices(includedLineIndices []int) string { includedLineIndicesSet := set.NewFromSlice(includedLineIndices) return s.patch.FormatView(patch.FormatViewOpts{ IncLineIndices: includedLineIndicesSet, diff --git a/pkg/gui/tasks_adapter.go b/pkg/gui/tasks_adapter.go index 62a53ae0b..545c45471 100644 --- a/pkg/gui/tasks_adapter.go +++ b/pkg/gui/tasks_adapter.go @@ -53,9 +53,7 @@ func (gui *Gui) newStringTaskWithoutScroll(view *gocui.View, str string) error { return nil } - // Using empty key so that on subsequent calls we won't reset the view's origin. - // Note this means that we will be scrolling back to the top if we're switching from a different key - if err := manager.NewTask(f, ""); err != nil { + if err := manager.NewTask(f, manager.GetTaskKey()); err != nil { return err } @@ -71,7 +69,7 @@ func (gui *Gui) newStringTaskWithScroll(view *gocui.View, str string, originX in return nil } - if err := manager.NewTask(f, ""); err != nil { + if err := manager.NewTask(f, manager.GetTaskKey()); err != nil { return err } diff --git a/pkg/gui/types/context.go b/pkg/gui/types/context.go index 1b7037690..a2ee3425f 100644 --- a/pkg/gui/types/context.go +++ b/pkg/gui/types/context.go @@ -177,11 +177,11 @@ type IPatchExplorerContext interface { GetState() *patch_exploring.State SetState(*patch_exploring.State) GetIncludedLineIndices() []int - RenderAndFocus(isFocused bool) - Render(isFocused bool) + RenderAndFocus() + Render() Focus() - GetContentToRender(isFocused bool) string - NavigateTo(isFocused bool, selectedLineIdx int) + GetContentToRender() string + NavigateTo(selectedLineIdx int) GetMutex() *deadlock.Mutex IsPatchExplorerContext() // used for type switch }