aboutsummaryrefslogtreecommitdiff
path: root/libdino/src/service/call_peer_state.vala
diff options
context:
space:
mode:
Diffstat (limited to 'libdino/src/service/call_peer_state.vala')
-rw-r--r--libdino/src/service/call_peer_state.vala14
1 files changed, 10 insertions, 4 deletions
diff --git a/libdino/src/service/call_peer_state.vala b/libdino/src/service/call_peer_state.vala
index 8c4b0930..09440371 100644
--- a/libdino/src/service/call_peer_state.vala
+++ b/libdino/src/service/call_peer_state.vala
@@ -127,8 +127,6 @@ public class Dino.PeerState : Object {
}
public void reject() {
- call.state = Call.State.DECLINED;
-
if (session != null) {
foreach (Xep.Jingle.Content content in session.contents) {
content.reject();
@@ -299,7 +297,12 @@ public class Dino.PeerState : Object {
debug(@"[%s] %s connecting content signals %s", call.account.bare_jid.to_string(), jid.to_string(), rtp_content_parameter.media);
rtp_content_parameter.stream_created.connect((stream) => on_stream_created(rtp_content_parameter.media, stream));
- rtp_content_parameter.connection_ready.connect((status) => on_connection_ready(content, rtp_content_parameter.media));
+ rtp_content_parameter.connection_ready.connect((status) => {
+ Idle.add(() => {
+ on_connection_ready(content, rtp_content_parameter.media);
+ return false;
+ });
+ });
content.senders_modify_incoming.connect((content, proposed_senders) => {
if (content.session.senders_include_us(content.senders) != content.session.senders_include_us(proposed_senders)) {
@@ -342,7 +345,10 @@ public class Dino.PeerState : Object {
if (media == "video" && stream.receiving) {
counterpart_sends_video = true;
video_content_parameter.connection_ready.connect((status) => {
- counterpart_sends_video_updated(false);
+ Idle.add(() => {
+ counterpart_sends_video_updated(false);
+ return false;
+ });
});
}