From c5ba4275ae68dd558108ce273dafa1bf890259e8 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Fri, 10 Apr 2026 21:54:26 +0200 Subject: 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. --- .../conversation_content_view/conversation_item_skeleton.vala | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'main/src/ui/conversation_content_view/conversation_item_skeleton.vala') 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); } -- cgit v1.3