From 68b07ef13c857b07d32c2fd8da08a0660f961a0a Mon Sep 17 00:00:00 2001 From: Marvin W Date: Fri, 7 Nov 2025 12:52:48 -0500 Subject: Fix file overlay leak --- main/src/ui/conversation_view.vala | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'main/src/ui/conversation_view.vala') diff --git a/main/src/ui/conversation_view.vala b/main/src/ui/conversation_view.vala index 128b3bd8..62d1ec9b 100644 --- a/main/src/ui/conversation_view.vala +++ b/main/src/ui/conversation_view.vala @@ -16,6 +16,7 @@ public class ConversationView : Widget { [GtkChild] public unowned ChatInput.View chat_input; [GtkChild] public unowned ConversationSummary.ConversationView conversation_frame; [GtkChild] public unowned Revealer white_revealer; + [GtkChild] public unowned Revealer content_revealer; public ListView list_view = new ListView(null, null); @@ -31,24 +32,25 @@ public class ConversationView : Widget { } public void add_overlay_dialog(Widget widget) { - Revealer revealer = new Revealer() { transition_type=RevealerTransitionType.CROSSFADE , transition_duration= 100 }; - revealer.set_child(widget); + content_revealer.set_child(widget); - overlay.add_overlay(revealer); - - revealer.reveal_child = true; + content_revealer.visible = true; + content_revealer.reveal_child = true; white_revealer.visible = true; white_revealer.reveal_child = true; - widget.destroy.connect(() => { - overlay.remove_overlay(revealer); - white_revealer.reveal_child = false; - chat_input.do_focus(); - }); + } + + public void remove_overlay_dialog() { + white_revealer.reveal_child = false; + content_revealer.reveal_child = false; + chat_input.do_focus(); } private void on_child_revealed_changed() { if (!white_revealer.child_revealed) { white_revealer.visible = false; + content_revealer.visible = false; + content_revealer.set_child(null); } } } -- cgit v1.3