diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-03-30 22:31:13 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-03-30 22:31:13 -0400 |
commit | 599a768459074559abed2a57fad789b0d8e48f9d (patch) | |
tree | 47296f72133f6ddccc84f2f8e47a4eed0ab37130 /components/chatmessage.cpp | |
parent | f4366fc0af088d7d78e2e571fb9b81e0c5693b51 (diff) | |
download | abaddon-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.cpp | 8 |
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); |