From 2cebe3b5dc0a17f46cb5e4122a16ed73e9e90d97 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sun, 10 May 2020 02:28:32 +0300 Subject: Move loaded history pointer to message view When it was in the history manager, it wouldn't get unloaded when the room was unloaded. Hopefully fixes #136 --- ui/message-view.go | 2 ++ ui/view-main.go | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'ui') diff --git a/ui/message-view.go b/ui/message-view.go index 596b9b0..2410cd5 100644 --- a/ui/message-view.go +++ b/ui/message-view.go @@ -51,6 +51,7 @@ type MessageView struct { // Used for locking loadingMessages int32 + historyLoadPtr uint64 _widestSender uint32 _prevWidestSender uint32 @@ -109,6 +110,7 @@ func (view *MessageView) Unload() { view.ScrollOffset = 0 view._widestSender = 5 view.prevMsgCount = -1 + view.historyLoadPtr = 0 view.messagesLock.Unlock() view.msgBufferLock.Unlock() view.messageIDLock.Unlock() diff --git a/ui/view-main.go b/ui/view-main.go index af99b29..0f6098c 100644 --- a/ui/view-main.go +++ b/ui/view-main.go @@ -461,13 +461,15 @@ func (view *MainView) LoadHistory(roomID id.RoomID) { // Update the "Loading more messages..." text view.parent.Render() - history, err := view.matrix.GetHistory(roomView.Room, 50) + history, newLoadPtr, err := view.matrix.GetHistory(roomView.Room, 50, msgView.historyLoadPtr) if err != nil { roomView.AddServiceMessage("Failed to fetch history") debug.Print("Failed to fetch history for", roomView.Room.ID, err) view.parent.Render() return } + //debug.Printf("Load pointer %d -> %d", msgView.historyLoadPtr, newLoadPtr) + msgView.historyLoadPtr = newLoadPtr for _, evt := range history { roomView.AddHistoryEvent(evt) } -- cgit v1.2.3