From 8e3e7d140d4a623eebc12f8951c3f583d46a9d27 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Wed, 8 Apr 2026 19:21:26 +0200 Subject: Fix leak in call widget --- .../src/ui/conversation_content_view/call_widget.vala | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'main/src') diff --git a/main/src/ui/conversation_content_view/call_widget.vala b/main/src/ui/conversation_content_view/call_widget.vala index 9e8a5dac..47921101 100644 --- a/main/src/ui/conversation_content_view/call_widget.vala +++ b/main/src/ui/conversation_content_view/call_widget.vala @@ -42,6 +42,7 @@ namespace Dino.Ui { private StreamInteractor stream_interactor; private CallState call_manager; private Call call; + private CallState call_state_obj; private Conversation conversation; public Call.State call_state { get; set; } // needs to be public for binding private uint time_update_handler_id = 0; @@ -58,6 +59,7 @@ namespace Dino.Ui { this.stream_interactor = stream_interactor; this.call_manager = call_state; this.call = call; + this.call_state_obj = call_state; this.conversation = conversation; // size_allocate.connect((allocation) => { @@ -73,19 +75,20 @@ namespace Dino.Ui { call_manager.peer_joined.connect(update_counterparts); } - accept_call_button.clicked.connect(() => { - call_manager.accept(); - - var call_window = new CallWindow(); - call_window.controller = new CallWindowController(call_window, call_state, stream_interactor); - call_window.present(); - }); - + accept_call_button.clicked.connect(on_accept_call_clicked); reject_call_button.clicked.connect(call_manager.reject); update_call_state(); } + private void on_accept_call_clicked() { + call_manager.accept(); + + var call_window = new CallWindow(); + call_window.controller = new CallWindowController(call_window, call_state_obj, stream_interactor); + call_window.present(); + } + private void update_counterparts() { if (call.state != Call.State.IN_PROGRESS && call.state != Call.State.ENDED) return; if (call.counterparts.size <= 1 && conversation.type_ == Conversation.Type.CHAT) return; -- cgit v1.3