summaryrefslogtreecommitdiff
path: root/windows/pinnedwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'windows/pinnedwindow.cpp')
-rw-r--r--windows/pinnedwindow.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/windows/pinnedwindow.cpp b/windows/pinnedwindow.cpp
index 99b8c1e..fc6230c 100644
--- a/windows/pinnedwindow.cpp
+++ b/windows/pinnedwindow.cpp
@@ -21,9 +21,19 @@ PinnedWindow::PinnedWindow(const ChannelData &data)
m_chat.SetActiveChannel(ChannelID);
m_chat.SetUsePinnedMenu();
+ Abaddon::Get().GetDiscordClient().signal_message_pinned().connect(sigc::mem_fun(*this, &PinnedWindow::OnMessagePinned));
+ Abaddon::Get().GetDiscordClient().signal_message_unpinned().connect(sigc::mem_fun(*this, &PinnedWindow::OnMessageUnpinned));
FetchPinned();
}
+void PinnedWindow::OnMessagePinned(const Message &msg) {
+ FetchPinned();
+}
+
+void PinnedWindow::OnMessageUnpinned(const Message &msg) {
+ m_chat.ActuallyRemoveMessage(msg.ID);
+}
+
void PinnedWindow::FetchPinned() {
Abaddon::Get().GetDiscordClient().FetchPinned(ChannelID, sigc::mem_fun(*this, &PinnedWindow::OnFetchedPinned));
}