Decrypt last events first to avoid shifts when scrolling up

pull/21833/head
Germain Souquet 2021-05-07 15:26:16 +01:00
parent fa30285c6b
commit 6e3f8d6a0a
1 changed files with 5 additions and 0 deletions

View File

@ -1142,7 +1142,12 @@ class TimelinePanel extends React.Component {
_getEvents() { _getEvents() {
const events = this._timelineWindow.getEvents(); const events = this._timelineWindow.getEvents();
// `slice` performs a shallow copy of the array
// we want the last event to be decrypted first but displayed last
// `reverse` is destructive and unfortunately mutates the "events" array
events events
.slice().reverse()
.forEach(event => { .forEach(event => {
if (event.shouldAttemptDecryption()) { if (event.shouldAttemptDecryption()) {
event.attemptDecryption(MatrixClientPeg.get()._crypto); event.attemptDecryption(MatrixClientPeg.get()._crypto);