Try to fix flickering, if sync return event before send completes

This commit is contained in:
Nicolas Werner 2020-02-16 00:20:41 +01:00
parent 70f4a89d10
commit ec9da9f42a
3 changed files with 36 additions and 0 deletions

View file

@ -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<mtx::events::RedactionEvent<mtx::events::msg::Redaction>>(&e)) {
QString redacts = QString::fromStdString(redaction->redacts);