aboutsummaryrefslogtreecommitdiff
path: root/ui/room-list.go
diff options
context:
space:
mode:
Diffstat (limited to 'ui/room-list.go')
-rw-r--r--ui/room-list.go20
1 files changed, 14 insertions, 6 deletions
diff --git a/ui/room-list.go b/ui/room-list.go
index 6b22c8e..f0a9703 100644
--- a/ui/room-list.go
+++ b/ui/room-list.go
@@ -236,6 +236,10 @@ func (list *RoomList) AddScrollOffset(offset int) {
func (list *RoomList) First() (string, *rooms.Room) {
list.RLock()
defer list.RUnlock()
+ return list.first()
+}
+
+func (list *RoomList) first() (string, *rooms.Room) {
for _, tag := range list.tags {
trl := list.items[tag]
if trl.HasVisibleRooms() {
@@ -248,6 +252,10 @@ func (list *RoomList) First() (string, *rooms.Room) {
func (list *RoomList) Last() (string, *rooms.Room) {
list.RLock()
defer list.RUnlock()
+ return list.last()
+}
+
+func (list *RoomList) last() (string, *rooms.Room) {
for tagIndex := len(list.tags) - 1; tagIndex >= 0; tagIndex-- {
tag := list.tags[tagIndex]
trl := list.items[tag]
@@ -273,7 +281,7 @@ func (list *RoomList) Previous() (string, *rooms.Room) {
if len(list.items) == 0 {
return "", nil
} else if list.selected == nil {
- return list.First()
+ return list.first()
}
trl := list.items[list.selectedTag]
@@ -295,11 +303,11 @@ func (list *RoomList) Previous() (string, *rooms.Room) {
return prevTag, prevTRL.LastVisible()
}
}
- return list.Last()
+ return list.last()
} else if index >= 0 {
return list.selectedTag, trl.Visible()[index+1].Room
}
- return list.First()
+ return list.first()
}
func (list *RoomList) Next() (string, *rooms.Room) {
@@ -308,7 +316,7 @@ func (list *RoomList) Next() (string, *rooms.Room) {
if len(list.items) == 0 {
return "", nil
} else if list.selected == nil {
- return list.First()
+ return list.first()
}
trl := list.items[list.selectedTag]
@@ -330,11 +338,11 @@ func (list *RoomList) Next() (string, *rooms.Room) {
return nextTag, nextTRL.FirstVisible()
}
}
- return list.First()
+ return list.first()
} else if index > 0 {
return list.selectedTag, trl.Visible()[index-1].Room
}
- return list.Last()
+ return list.last()
}
// NextWithActivity Returns next room with activity.