diff options
| author | Marvin W <git@larma.de> | 2026-04-08 19:21:26 +0200 |
|---|---|---|
| committer | Marvin W <git@larma.de> | 2026-04-08 19:21:26 +0200 |
| commit | 8e3e7d140d4a623eebc12f8951c3f583d46a9d27 (patch) | |
| tree | b3fe1c9d5fed68e4370cbf9f4dc799642c02e148 /main/src/ui/conversation_content_view/call_widget.vala | |
| parent | 59c2cef2b905f74a8cdf5de35fc10c7bbf340403 (diff) | |
Fix leak in call widget
Diffstat (limited to 'main/src/ui/conversation_content_view/call_widget.vala')
| -rw-r--r-- | main/src/ui/conversation_content_view/call_widget.vala | 19 |
1 files changed, 11 insertions, 8 deletions
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; |
