summaryrefslogtreecommitdiffstats
path: root/pkg/gui/filtering.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/filtering.go')
-rw-r--r--pkg/gui/filtering.go27
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)
+ }})
}