2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-09-01 23:15:59 +00:00

Handle clicks on topic jump area.

This commit is contained in:
John Preston
2022-11-14 11:24:31 +04:00
parent ede34578da
commit 561e3f4809
11 changed files with 486 additions and 141 deletions

View File

@@ -232,6 +232,7 @@ enum class Flag {
SavedMessages = 0x08,
RepliesMessages = 0x10,
AllowUserOnline = 0x20,
TopicJumpRipple = 0x40,
};
inline constexpr bool is_flag_type(Flag) { return true; }
@@ -264,11 +265,13 @@ void PaintRow(
: context.selected
? st::dialogsBgOver
: st::dialogsBg;
auto ripple = context.active
? st::dialogsRippleBgActive
: st::dialogsRippleBg;
p.fillRect(geometry, bg);
row->paintRipple(p, 0, 0, context.width, &ripple->c);
if (!(flags & Flag::TopicJumpRipple)) {
auto ripple = context.active
? st::dialogsRippleBgActive
: st::dialogsRippleBg;
row->paintRipple(p, 0, 0, context.width, &ripple->c);
}
const auto history = entry->asHistory();
const auto thread = entry->asThread();
@@ -883,7 +886,8 @@ void RowPainter::Paint(
const auto allowUserOnline = !context.narrow || badgesState.empty();
const auto flags = (allowUserOnline ? Flag::AllowUserOnline : Flag(0))
| (peer && peer->isSelf() ? Flag::SavedMessages : Flag(0))
| (peer && peer->isRepliesChat() ? Flag::RepliesMessages : Flag(0));
| (peer && peer->isRepliesChat() ? Flag::RepliesMessages : Flag(0))
| (row->topicJumpRipple() ? Flag::TopicJumpRipple : Flag(0));
const auto paintItemCallback = [&](int nameleft, int namewidth) {
const auto texttop = context.st->textTop;
const auto availableWidth = PaintWideCounter(