From 39c28e2207831ce9e4af1afc987959d493003398 Mon Sep 17 00:00:00 2001 From: "J. Ryan Stinnett" Date: Fri, 12 Jun 2020 14:17:06 +0100 Subject: [PATCH] Send read marker updates immediately after moving visually The `TimelinePanel` uses two timers to coordinate read marker and read receipt updates. When the read receipt timer fires, we advance the receipt and send the latest state of both your receipt and marker to the server. When the read marker timer fires, we advance the marker visually, but do not send anything to the server: we were relying on the slightly different schedule of the read receipt to actually send the updated read marker. This means there's a time window where it's possible to visually advance the read marker without ever sending it to the server (if you change rooms before the receipt timer fires again). To simplify the behaviour here and ensure we always commit the updated marker when we move it, this change sends an update to the server at the same time as moving the marker. It's possible this may improve some of the behaviour reported in https://github.com/vector-im/riot-web/issues/12338. --- src/components/structures/TimelinePanel.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/structures/TimelinePanel.js b/src/components/structures/TimelinePanel.js index 95dc42fcee..d469a41cc8 100644 --- a/src/components/structures/TimelinePanel.js +++ b/src/components/structures/TimelinePanel.js @@ -798,6 +798,9 @@ const TimelinePanel = createReactClass({ readMarkerVisible: false, }); } + + // Send the updated read marker (along with read receipt) to the server + this.sendReadReceipt(); },