summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2024-01-28 08:23:09 +1100
committerJesse Duffield <jessedduffield@gmail.com>2024-01-28 08:33:13 +1100
commitc07b3fad64ca71bc1873bcc1bb9e2256c05d4df0 (patch)
treeef7633a4b5c737b5642ed9b597de310ed4626b03
parent9bf3063457bb888b45d26923d52947314d2a218d (diff)
Ensure file view length is never returned as -1
This was causing issues when obtaining selected items
-rw-r--r--pkg/gui/filetree/file_tree.go4
-rw-r--r--pkg/gui/filetree/file_tree_view_model.go4
2 files changed, 7 insertions, 1 deletions
diff --git a/pkg/gui/filetree/file_tree.go b/pkg/gui/filetree/file_tree.go
index 9d3bb580d..b80499cfd 100644
--- a/pkg/gui/filetree/file_tree.go
+++ b/pkg/gui/filetree/file_tree.go
@@ -5,6 +5,7 @@ import (
"github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/gui/types"
+ "github.com/jesseduffield/lazygit/pkg/utils"
"github.com/samber/lo"
"github.com/sirupsen/logrus"
)
@@ -138,7 +139,8 @@ func (self *FileTree) GetAllItems() []*FileNode {
}
func (self *FileTree) Len() int {
- return self.tree.Size(self.collapsedPaths) - 1 // ignoring root
+ // -1 because we're ignoring the root
+ return utils.Max(self.tree.Size(self.collapsedPaths)-1, 0)
}
func (self *FileTree) GetItem(index int) types.HasUrn {
diff --git a/pkg/gui/filetree/file_tree_view_model.go b/pkg/gui/filetree/file_tree_view_model.go
index 05cc9cb89..439471b01 100644
--- a/pkg/gui/filetree/file_tree_view_model.go
+++ b/pkg/gui/filetree/file_tree_view_model.go
@@ -54,6 +54,10 @@ func (self *FileTreeViewModel) GetSelectedItemId() string {
}
func (self *FileTreeViewModel) GetSelectedItems() ([]*FileNode, int, int) {
+ if self.Len() == 0 {
+ return nil, 0, 0
+ }
+
startIdx, endIdx := self.GetSelectionRange()
nodes := []*FileNode{}