aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui/call_window/call_window_controller.vala
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/ui/call_window/call_window_controller.vala')
-rw-r--r--main/src/ui/call_window/call_window_controller.vala30
1 files changed, 16 insertions, 14 deletions
diff --git a/main/src/ui/call_window/call_window_controller.vala b/main/src/ui/call_window/call_window_controller.vala
index 616e341d..0a223d72 100644
--- a/main/src/ui/call_window/call_window_controller.vala
+++ b/main/src/ui/call_window/call_window_controller.vala
@@ -3,8 +3,6 @@ using Gtk;
public class Dino.Ui.CallWindowController : Object {
- public signal void terminated();
-
private CallWindow call_window;
private Call call;
private Conversation conversation;
@@ -40,8 +38,16 @@ public class Dino.Ui.CallWindowController : Object {
call_window.set_status("requested");
}
- call_window.bottom_bar.hang_up.connect(end_call);
- call_window.destroy.connect(end_call);
+ call_window.bottom_bar.hang_up.connect(() => {
+ calls.end_call(conversation, call);
+ call_window.close();
+ call_window.destroy();
+ this.dispose();
+ });
+ call_window.destroy.connect(() => {
+ calls.end_call(conversation, call);
+ this.dispose();
+ });
call_window.bottom_bar.notify["audio-enabled"].connect(() => {
calls.mute_own_audio(call, !call_window.bottom_bar.audio_enabled);
@@ -116,16 +122,6 @@ public class Dino.Ui.CallWindowController : Object {
this.window_width = this.call_window.get_allocated_width();
}
- private void end_call() {
- call.notify["state"].disconnect(on_call_state_changed);
- calls.call_terminated.disconnect(on_call_terminated);
-
- calls.end_call(conversation, call);
- call_window.close();
- call_window.destroy();
- terminated();
- }
-
private void on_call_state_changed() {
if (call.state == Call.State.IN_PROGRESS) {
call_window.set_status("");
@@ -234,4 +230,10 @@ public class Dino.Ui.CallWindowController : Object {
call_window.unset_own_video();
}
}
+
+ public override void dispose() {
+ base.dispose();
+ call.notify["state"].disconnect(on_call_state_changed);
+ calls.call_terminated.disconnect(on_call_terminated);
+ }
} \ No newline at end of file