From 1fa3e5beac2002b35d04dcd6c0f4d7132709ca30 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Tue, 17 Aug 2021 23:29:48 -0400 Subject: make channel in thread created message clickable --- components/chatmessage.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'components') diff --git a/components/chatmessage.cpp b/components/chatmessage.cpp index b7cdf17..88e3f2c 100644 --- a/components/chatmessage.cpp +++ b/components/chatmessage.cpp @@ -278,7 +278,17 @@ void ChatMessageItemContainer::UpdateTextComponent(Gtk::TextView *tv) { } break; case MessageType::THREAD_CREATED: { const auto author = Abaddon::Get().GetDiscordClient().GetUser(data->Author.ID); - b->insert_markup(s, "" + author->GetEscapedBoldName() + " started a thread: " + Glib::Markup::escape_text(data->Content) + ""); + if (data->MessageReference.has_value() && data->MessageReference->ChannelID.has_value()) { + auto iter = b->insert_markup(s, "" + author->GetEscapedBoldName() + " started a thread: "); + auto tag = b->create_tag(); + tag->property_weight() = Pango::WEIGHT_BOLD; + m_channel_tagmap[tag] = *data->MessageReference->ChannelID; + b->insert_with_tag(iter, data->Content, tag); + + tv->signal_button_press_event().connect(sigc::mem_fun(*this, &ChatMessageItemContainer::OnClickChannel), false); + } else { + b->insert_markup(s, "" + author->GetEscapedBoldName() + " started a thread: " + Glib::Markup::escape_text(data->Content) + ""); + } } break; default: break; } -- cgit v1.2.3