[ekiga/ds-gsettings3] Opal: Fixed missed call signal emission.
- From: Damien Sandras <dsandras src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ekiga/ds-gsettings3] Opal: Fixed missed call signal emission.
- Date: Sat, 23 Nov 2013 11:04:29 +0000 (UTC)
commit d15850692000a23f441fe137b9fae14eb9b9d14b
Author: Damien Sandras <dsandras beip be>
Date: Sat Nov 23 11:58:37 2013 +0100
Opal: Fixed missed call signal emission.
When the call fails because there is no common codec (or any error that
prevents the call from being established), we had a missed call signal
emitted and a nice deadlock.
Things are now correctly handled.
lib/engine/components/opal/opal-call.cpp | 16 +++++-----------
1 files changed, 5 insertions(+), 11 deletions(-)
---
diff --git a/lib/engine/components/opal/opal-call.cpp b/lib/engine/components/opal/opal-call.cpp
index 4af2050..a33a139 100644
--- a/lib/engine/components/opal/opal-call.cpp
+++ b/lib/engine/components/opal/opal-call.cpp
@@ -411,13 +411,7 @@ Opal::Call::OnCleared ()
while (!call_setup)
PThread::Current ()->Sleep (100);
- if (!IsEstablished ()
- && !is_outgoing ()
- && GetCallEndReason () != OpalConnection::EndedByAnswerDenied) {
-
- Ekiga::Runtime::run_in_main (boost::bind (&Opal::Call::emit_missed_in_main, this));
- }
- else {
+ OpalCall::OnCleared ();
switch (GetCallEndReason ()) {
@@ -503,10 +497,10 @@ Opal::Call::OnCleared ()
reason = _("Call completed");
}
- Ekiga::Runtime::run_in_main (boost::bind (&Opal::Call::emit_cleared_in_main, this, reason));
- }
-
- OpalCall::OnCleared ();
+ if (IsEstablished ())
+ Ekiga::Runtime::run_in_main (boost::bind (&Opal::Call::emit_cleared_in_main, this, reason));
+ else
+ Ekiga::Runtime::run_in_main (boost::bind (&Opal::Call::emit_missed_in_main, this));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]