diff options
Diffstat (limited to 'pkg/gui/filtering.go')
-rw-r--r-- | pkg/gui/filtering.go | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/pkg/gui/filtering.go b/pkg/gui/filtering.go index bf44ec0bc..b3fa0e089 100644 --- a/pkg/gui/filtering.go +++ b/pkg/gui/filtering.go @@ -14,6 +14,29 @@ func (gui *Gui) validateNotInFilterMode() (bool, error) { } func (gui *Gui) exitFilterMode() error { - gui.State.Modes.Filtering.Path = "" - return gui.Errors.ErrRestart + return gui.clearFiltering() +} + +func (gui *Gui) clearFiltering() error { + gui.State.Modes.Filtering.Reset() + if gui.State.ScreenMode == SCREEN_HALF { + gui.State.ScreenMode = SCREEN_NORMAL + } + + return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{COMMITS}}) +} + +func (gui *Gui) setFiltering(path string) error { + gui.State.Modes.Filtering.SetPath(path) + if gui.State.ScreenMode == SCREEN_NORMAL { + gui.State.ScreenMode = SCREEN_HALF + } + + if err := gui.pushContext(gui.Contexts.BranchCommits); err != nil { + return err + } + + return gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{COMMITS}, then: func() { + gui.Contexts.BranchCommits.GetPanelState().SetSelectedLineIdx(0) + }}) } |