Fix users with @room in the name pinging the whole room when replied to

This commit is contained in:
Nicolas Werner 2022-07-05 12:57:17 +02:00
parent f099ec63d1
commit 42b53817e0
No known key found for this signature in database
GPG Key ID: C8D75E610773F2D9
1 changed files with 29 additions and 23 deletions

View File

@ -375,6 +375,11 @@ InputBar::message(const QString &msg, MarkdownOverride useMarkdown, bool rainbow
} else if (!room->reply().isEmpty()) {
auto related = room->relatedInfo(room->reply());
// Skip reply fallbacks to users who would cause a room ping with the fallback.
// This should be fine, since in some cases the reply fallback can be omitted now and the
// alternative is worse! On Element Android this applies to any substring, but that is their
// bug to fix.
if (!related.quoted_user.startsWith("@room:")) {
QString body;
bool firstLine = true;
auto lines = related.quoted_body.splitRef(u'\n');
@ -400,6 +405,7 @@ InputBar::message(const QString &msg, MarkdownOverride useMarkdown, bool rainbow
else
text.formatted_body =
utils::getFormattedQuoteBody(related, msg.toHtmlEscaped()).toStdString();
}
text.relations.relations.push_back(
{mtx::common::RelationType::InReplyTo, related.related_event});