diff options
| author | Marvin W <git@larma.de> | 2026-04-10 21:54:26 +0200 |
|---|---|---|
| committer | Marvin W <git@larma.de> | 2026-04-10 21:54:26 +0200 |
| commit | c5ba4275ae68dd558108ce273dafa1bf890259e8 (patch) | |
| tree | c11797edfb7190ae0fb5166cec60881237bcd0bf /main | |
| parent | 0baeaa2b8f481f60f8c7eecc856c48a11f211a20 (diff) | |
Early dispose the reaction widget when no longer needed
It previously triggered the leak checker, even though eventually the widget
would be disposed when the corresponding message skeletion got disposed.
Diffstat (limited to 'main')
| -rw-r--r-- | main/src/ui/conversation_content_view/conversation_item_skeleton.vala | 10 | ||||
| -rw-r--r-- | main/src/ui/conversation_content_view/reactions_widget.vala | 4 |
2 files changed, 9 insertions, 5 deletions
diff --git a/main/src/ui/conversation_content_view/conversation_item_skeleton.vala b/main/src/ui/conversation_content_view/conversation_item_skeleton.vala index 3c1b4e3b..d8cf469c 100644 --- a/main/src/ui/conversation_content_view/conversation_item_skeleton.vala +++ b/main/src/ui/conversation_content_view/conversation_item_skeleton.vala @@ -102,12 +102,16 @@ public class ConversationItemSkeleton : Plugins.ConversationItemWidgetInterface, update_received_mark(); } - public void set_widget(Object object, Plugins.WidgetType type, int priority) { + public void set_widget(Object? object, Plugins.WidgetType type, int priority) { foreach (var content_widget in content_widgets.values) { content_widget.unparent(); } - content_widgets[priority] = (Widget) object; + if (object is Widget) { + content_widgets[priority] = (Widget) object; + } else { + content_widgets.unset(priority); + } int row_no = 1; for (int i = 0; i < 5; i++) { if (!content_widgets.has_key(i)) continue; @@ -169,7 +173,7 @@ public class ConversationItemSkeleton : Plugins.ConversationItemWidgetInterface, } } - private void on_reaction_box_activated(Widget widget) { + private void on_reaction_box_activated(Widget? widget) { set_widget(widget, Plugins.WidgetType.GTK4, 3); } diff --git a/main/src/ui/conversation_content_view/reactions_widget.vala b/main/src/ui/conversation_content_view/reactions_widget.vala index a148a677..cb756167 100644 --- a/main/src/ui/conversation_content_view/reactions_widget.vala +++ b/main/src/ui/conversation_content_view/reactions_widget.vala @@ -7,7 +7,7 @@ using Xmpp; namespace Dino.Ui.ConversationSummary { public class ReactionsController : Object { - public signal void box_activated(Widget widget); + public signal void box_activated(Widget? widget); private Conversation conversation; private Account account; @@ -94,7 +94,7 @@ public class ReactionsController : Object { } if (reactions.size == 0) { - widget.unparent(); + box_activated(null); this.widget.set(null); } } |
