aboutsummaryrefslogtreecommitdiff
path: root/ui/room-view.go
diff options
context:
space:
mode:
Diffstat (limited to 'ui/room-view.go')
-rw-r--r--ui/room-view.go23
1 files changed, 20 insertions, 3 deletions
diff --git a/ui/room-view.go b/ui/room-view.go
index b37ebff..48943a7 100644
--- a/ui/room-view.go
+++ b/ui/room-view.go
@@ -93,6 +93,17 @@ func NewRoomView(parent *MainView, room *rooms.Room) *RoomView {
config: parent.config,
}
view.content = NewMessageView(view)
+ view.Room.SetOnUnload(func() bool {
+ if view.parent.currentRoom == view {
+ return false
+ }
+ view.content.Unload()
+ return true
+ })
+ view.Room.SetOnLoad(func() bool {
+ view.loadTyping()
+ return true
+ })
view.input.
SetBackgroundColor(tcell.ColorDefault).
@@ -270,14 +281,20 @@ func (view *RoomView) SetCompletions(completions []string) {
view.completions.time = time.Now()
}
-func (view *RoomView) SetTyping(users []string) {
- for index, user := range users {
+func (view *RoomView) loadTyping() {
+ for index, user := range view.typing {
member := view.Room.GetMember(user)
if member != nil {
- users[index] = member.Displayname
+ view.typing[index] = member.Displayname
}
}
+}
+
+func (view *RoomView) SetTyping(users []string) {
view.typing = users
+ if view.Room.Loaded() {
+ view.loadTyping()
+ }
}
type completion struct {