[ekiga/ds-gsettings3] Opal: Fixed missed call signal emission.



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]