diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-09-27 00:36:11 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-09-27 00:36:11 -0400 |
commit | 0571a05497ff628ceba8c7752dc3dd4104b1e0ea (patch) | |
tree | 0f145ca323b88dc6300a6a2077312d57beef4697 /src/components/chatmessage.cpp | |
parent | 90437de2c031f6cf0b58603d9cb5582064176374 (diff) | |
parent | 3027e00905b19282a4f501a26f7a4f71bc6940ea (diff) | |
download | abaddon-portaudio-0571a05497ff628ceba8c7752dc3dd4104b1e0ea.tar.gz abaddon-portaudio-0571a05497ff628ceba8c7752dc3dd4104b1e0ea.zip |
Merge branch 'master' into voice
Diffstat (limited to 'src/components/chatmessage.cpp')
-rw-r--r-- | src/components/chatmessage.cpp | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/components/chatmessage.cpp b/src/components/chatmessage.cpp index 1aca81d..3afdf9f 100644 --- a/src/components/chatmessage.cpp +++ b/src/components/chatmessage.cpp @@ -150,8 +150,8 @@ void ChatMessageItemContainer::UpdateAttributes() { void ChatMessageItemContainer::AddClickHandler(Gtk::Widget *widget, const std::string &url) { // clang-format off - widget->signal_button_press_event().connect([url](GdkEventButton *event) -> bool { - if (event->type == GDK_BUTTON_PRESS && event->button == GDK_BUTTON_PRIMARY) { + widget->signal_button_release_event().connect([url](GdkEventButton *event) -> bool { + if (event->type == GDK_BUTTON_RELEASE && event->button == GDK_BUTTON_PRIMARY) { LaunchBrowser(url); return true; } @@ -357,8 +357,8 @@ Gtk::Widget *ChatMessageItemContainer::CreateEmbedComponent(const EmbedData &emb if (embed.URL.has_value()) { AddPointerCursor(*title_ev); auto url = *embed.URL; - title_ev->signal_button_press_event().connect([url = std::move(url)](GdkEventButton *event) -> bool { - if (event->button == GDK_BUTTON_PRIMARY) { + title_ev->signal_button_release_event().connect([url = std::move(url)](GdkEventButton *event) -> bool { + if (event->type == GDK_BUTTON_RELEASE && event->button == GDK_BUTTON_PRIMARY) { LaunchBrowser(url); return true; } @@ -655,13 +655,19 @@ Gtk::Widget *ChatMessageItemContainer::CreateReplyComponent(const Message &data) const auto role = discord.GetRole(role_id); if (role.has_value()) { const auto author = discord.GetUser(author_id); - return "<b><span color=\"#" + IntToCSSColor(role->Color) + "\">" + author->GetEscapedString() + "</span></b>"; + if (author.has_value()) { + return "<b><span color=\"#" + IntToCSSColor(role->Color) + "\">" + author->GetEscapedString() + "</span></b>"; + } } } } const auto author = discord.GetUser(author_id); - return author->GetEscapedBoldString<false>(); + if (author.has_value()) { + return author->GetEscapedBoldString<false>(); + } + + return "<b>Unknown User</b>"; }; // if the message wasnt fetched from store it might have an un-fetched reference @@ -673,15 +679,15 @@ Gtk::Widget *ChatMessageItemContainer::CreateReplyComponent(const Message &data) } if (data.Interaction.has_value()) { - const auto user = *discord.GetUser(data.Interaction->User.ID); - if (data.GuildID.has_value()) { - lbl->set_markup(get_author_markup(user.ID, *data.GuildID) + + lbl->set_markup(get_author_markup(data.Interaction->User.ID, *data.GuildID) + " used <span color='#697ec4'>/" + Glib::Markup::escape_text(data.Interaction->Name) + "</span>"); + } else if (const auto user = discord.GetUser(data.Interaction->User.ID); user.has_value()) { + lbl->set_markup(user->GetEscapedBoldString<false>()); } else { - lbl->set_markup(user.GetEscapedBoldString<false>()); + lbl->set_markup("<b>Unknown User</b>"); } } else if (referenced_message.has_value()) { if (referenced_message.value() == nullptr) { |