Selaa lähdekoodia

fix: goroutinize message-rendering and channel-acking together

ayntgl 4 vuotta sitten
vanhempi
sitoutus
7cede44f60
1 muutettua tiedostoa jossa 13 lisäystä ja 11 poistoa
  1. 13 11
      ui.go

+ 13 - 11
ui.go

@@ -92,19 +92,21 @@ func onChannelsTreeSelected(n *tview.TreeNode) {
 
 		messagesTextView.Clear()
 
-		ms, err := session.ChannelMessages(cID, conf.GetMessagesLimit, "", "", "")
-		if err != nil {
-			return
-		}
+		go func() {
+			ms, err := session.ChannelMessages(cID, conf.GetMessagesLimit, "", "", "")
+			if err != nil {
+				return
+			}
 
-		for i := len(ms) - 1; i >= 0; i-- {
-			selectedChannel.Messages = append(selectedChannel.Messages, ms[i])
-			go renderMessage(ms[i])
-		}
+			for i := len(ms) - 1; i >= 0; i-- {
+				selectedChannel.Messages = append(selectedChannel.Messages, ms[i])
+				renderMessage(ms[i])
+			}
 
-		if len(ms) != 0 && isUnread(c) {
-			go session.ChannelMessageAck(c.ID, c.LastMessageID, "")
-		}
+			if len(ms) != 0 && isUnread(c) {
+				session.ChannelMessageAck(c.ID, c.LastMessageID, "")
+			}
+		}()
 	}
 }