summaryrefslogtreecommitdiff
path: root/components/chatmessage.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-03-30 22:31:13 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2021-03-30 22:31:13 -0400
commit599a768459074559abed2a57fad789b0d8e48f9d (patch)
tree47296f72133f6ddccc84f2f8e47a4eed0ab37130 /components/chatmessage.cpp
parentf4366fc0af088d7d78e2e571fb9b81e0c5693b51 (diff)
downloadabaddon-portaudio-599a768459074559abed2a57fad789b0d8e48f9d.tar.gz
abaddon-portaudio-599a768459074559abed2a57fad789b0d8e48f9d.zip
remove old messages when new ones come in to save resources
Diffstat (limited to 'components/chatmessage.cpp')
-rw-r--r--components/chatmessage.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/components/chatmessage.cpp b/components/chatmessage.cpp
index 96facf7..ebf29d1 100644
--- a/components/chatmessage.cpp
+++ b/components/chatmessage.cpp
@@ -1148,6 +1148,10 @@ void ChatMessageHeader::UpdateNameColor() {
m_author->set_markup(md);
}
+std::vector<Gtk::Widget *> ChatMessageHeader::GetChildContent() {
+ return m_content_widgets;
+}
+
void ChatMessageHeader::AttachUserMenuHandler(Gtk::Widget &widget) {
widget.signal_button_press_event().connect([this](GdkEventButton *ev) -> bool {
if (ev->type == GDK_BUTTON_PRESS && ev->button == GDK_BUTTON_SECONDARY) {
@@ -1177,6 +1181,10 @@ ChatMessageHeader::type_signal_action_open_user_menu ChatMessageHeader::signal_a
}
void ChatMessageHeader::AddContent(Gtk::Widget *widget, bool prepend) {
+ m_content_widgets.push_back(widget);
+ widget->signal_unmap().connect([this, widget]() {
+ m_content_widgets.erase(std::remove(m_content_widgets.begin(), m_content_widgets.end(), widget), m_content_widgets.end());
+ });
m_content_box->add(*widget);
if (prepend)
m_content_box->reorder_child(*widget, 1);