about summary refs log tree commit diff stats
path: root/widgets/dirlist.go
diff options
context:
space:
mode:
authorReto Brunner <reto@labrat.space>2020-09-08 07:46:21 +0200
committerReto Brunner <reto@labrat.space>2020-09-08 07:48:55 +0200
commitfe42beb3e4ac00f07884880b7a6251c59fd04230 (patch)
treed2e5ab76fca265497819ba02a60e4ae7c559cad3 /widgets/dirlist.go
parent6ddd347b06e840f064106a8181ae570e2d33d395 (diff)
downloadaerc-fe42beb3e4ac00f07884880b7a6251c59fd04230.tar.gz
dirlist: fix empty row if dir is added
There is a window where a new dir entry isn't yet in the dirlist.dir.
dirlist.ensureScroll however expected to always find a valid index.
Add a check so that we don't try to scroll to a -1 index.
Diffstat (limited to 'widgets/dirlist.go')
-rw-r--r--widgets/dirlist.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/widgets/dirlist.go b/widgets/dirlist.go
index 3ed79cc..aca1491 100644
--- a/widgets/dirlist.go
+++ b/widgets/dirlist.go
@@ -270,6 +270,12 @@ func (dirlist *DirectoryList) drawScrollbar(ctx *ui.Context, percentVisible floa
 
 func (dirlist *DirectoryList) ensureScroll(h int) {
 	selectingIdx := findString(dirlist.dirs, dirlist.selecting)
+	if selectingIdx < 0 {
+		// dir not found, meaning we are currently adding / removing a dir.
+		// we can simply ignore this until we get redrawn with the new
+		// dirlist.dir content
+		return
+	}
 
 	maxScroll := len(dirlist.dirs) - h
 	if maxScroll < 0 {