From 0c135515a5eb6cc11eec22b744aa06e6d52cf98e Mon Sep 17 00:00:00 2001 From: Cristian Betivu Date: Sun, 6 Jun 2021 12:41:55 +0200 Subject: [PATCH] Use parent view for tab navigation --- pkg/gui/menu_panel.go | 2 ++ pkg/gui/view_helpers.go | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/pkg/gui/menu_panel.go b/pkg/gui/menu_panel.go index fcb1f7a7b..91071f200 100644 --- a/pkg/gui/menu_panel.go +++ b/pkg/gui/menu_panel.go @@ -74,11 +74,13 @@ func (gui *Gui) createMenu(title string, items []*menuItem, createMenuOptions cr list := utils.RenderDisplayStrings(stringArrays) + parentView := gui.g.CurrentView() x0, y0, x1, y1 := gui.getConfirmationPanelDimensions(false, list) menuView, _ := gui.g.SetView("menu", x0, y0, x1, y1, 0) menuView.Title = title menuView.FgColor = theme.GocuiDefaultTextColor menuView.ContainsList = true + menuView.ParentView = parentView menuView.Clear() menuView.SetOnSelectItem(gui.onSelectItemWrapper(func(selectedLine int) error { return nil diff --git a/pkg/gui/view_helpers.go b/pkg/gui/view_helpers.go index dc4f4675d..4f42bfc18 100644 --- a/pkg/gui/view_helpers.go +++ b/pkg/gui/view_helpers.go @@ -358,7 +358,7 @@ func (gui *Gui) onViewTabClick(viewName string, tabIndex int) error { } func (gui *Gui) handleNextTab() error { - v := gui.g.CurrentView() + v := getTabbedView(gui) if v == nil { return nil } @@ -370,7 +370,7 @@ func (gui *Gui) handleNextTab() error { } func (gui *Gui) handlePrevTab() error { - v := gui.g.CurrentView() + v := getTabbedView(gui) if v == nil { return nil } @@ -392,3 +392,15 @@ func (gui *Gui) pageDelta(view *gocui.View) int { return delta } + +func getTabbedView(gui *Gui) *gocui.View { + v := gui.g.CurrentView() + if v == nil { + return nil + } + if v.Name() == "menu" { + v = v.ParentView + } + + return v +}