Skip to content

Commit f0bfcc0

Browse files
committed
Repaint hidden sender statuses instead of rebuilding them
Task: 2026/10/29/hide-emoji-statuses-and-keep-messages-unread-while-the-report-spam-bar-is-shown
1 parent d418e69 commit f0bfcc0

4 files changed

Lines changed: 17 additions & 6 deletions

File tree

‎Telegram/SourceFiles/chat_helpers/ttl_media_layer_widget.cpp‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,10 @@ PreviewWrap::PreviewWrap(
169169
update(_elementGeometry);
170170
}
171171
}, lifetime());
172+
session->data().peerDecorationsUpdated(
173+
) | rpl::on_next([=] {
174+
update(_elementGeometry);
175+
}, lifetime());
172176
session->data().itemViewRefreshRequest(
173177
) | rpl::on_next([=](not_null<const HistoryItem*> item) {
174178
if (item == _item) {

‎Telegram/SourceFiles/editor/editor_message_render.cpp‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,11 @@ MessageRenderer::MessageRenderer(std::shared_ptr<MessageSource> source)
165165
}
166166
}, _lifetime);
167167

168+
data->peerDecorationsUpdated(
169+
) | rpl::on_next([=] {
170+
repaint();
171+
}, _lifetime);
172+
168173
session->downloaderTaskFinished(
169174
) | rpl::on_next([=] {
170175
repaint();

‎Telegram/SourceFiles/history/view/controls/history_view_draft_options.cpp‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,11 @@ PreviewWrap::PreviewWrap(
239239
}
240240
}, lifetime());
241241

242+
session->data().peerDecorationsUpdated(
243+
) | rpl::on_next([=] {
244+
update();
245+
}, lifetime());
246+
242247
session->data().viewResizeRequest(
243248
) | rpl::on_next([=](not_null<Element*> view) {
244249
if (_rich && _views.contains(view)) {

‎Telegram/SourceFiles/history/view/history_view_message.cpp‎

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4430,12 +4430,9 @@ void Message::ensureFromNameStatusLink(not_null<PeerData*> peer) const {
44304430
}
44314431

44324432
EmojiStatusId Message::fromNameStatusId(not_null<PeerData*> from) const {
4433-
const auto id = from->emojiStatusId();
4434-
if (id && data()->hideLinks()) {
4435-
data()->setHasHiddenLinks(true);
4436-
return EmojiStatusId();
4437-
}
4438-
return from->hideEmojiStatus() ? EmojiStatusId() : id;
4433+
return (data()->hideLinks() || from->hideEmojiStatus())
4434+
? EmojiStatusId()
4435+
: from->emojiStatusId();
44394436
}
44404437

44414438
bool Message::getStateTopicButton(

0 commit comments

Comments
 (0)