From 3a41bb9fff45c7e87ee1ce647155a86ce4f227b1 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Tue, 5 Jan 2021 22:10:40 +0100 Subject: Fix typing notifications flickering sometimes --- src/timeline/TimelineViewManager.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'src/timeline') diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp index 03eb53fc..f31b5ea5 100644 --- a/src/timeline/TimelineViewManager.cpp +++ b/src/timeline/TimelineViewManager.cpp @@ -297,13 +297,20 @@ TimelineViewManager::sync(const mtx::responses::Rooms &rooms) &CallManager::syncEvent); if (ChatPage::instance()->userSettings()->typingNotifications()) { - std::vector typing; - typing.reserve(room.ephemeral.typing.size()); - for (const auto &user : room.ephemeral.typing) { - if (user != http::client()->user_id().to_string()) - typing.push_back(QString::fromStdString(user)); + for (const auto &ev : room.ephemeral.events) { + if (auto t = std::get_if< + mtx::events::EphemeralEvent>( + &ev)) { + std::vector typing; + typing.reserve(t->content.user_ids.size()); + for (const auto &user : t->content.user_ids) { + if (user != http::client()->user_id().to_string()) + typing.push_back( + QString::fromStdString(user)); + } + room_model->updateTypingUsers(typing); + } } - room_model->updateTypingUsers(typing); } } -- cgit 1.5.1