From ec9da9f42a29ef12e266ee1e05aebd17f98a3371 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Sun, 16 Feb 2020 00:20:41 +0100 Subject: Try to fix flickering, if sync return event before send completes --- src/timeline/TimelineModel.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/timeline/TimelineModel.cpp') diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp index 104d564b..432cd329 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp @@ -538,6 +538,20 @@ TimelineModel::internalAddEvents( continue; } + QString txid = QString::fromStdString(mtx::accessors::transaction_id(e)); + if (this->pending.removeOne(txid)) { + this->events.insert(id, e); + this->events.remove(txid); + int idx = idToIndex(txid); + if (idx < 0) { + nhlog::ui()->warn("Received index out of range"); + continue; + } + eventOrder[idx] = id; + emit dataChanged(index(idx, 0), index(idx, 0)); + continue; + } + if (auto redaction = std::get_if>(&e)) { QString redacts = QString::fromStdString(redaction->redacts); -- cgit 1.5.1