[telepathy-qt4/master] StreamedMediaChannel: Do not emit localHoldStateChanged if local hold state did not change.

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Thu Aug 13 15:54:09 PDT 2009


---
 TelepathyQt4/streamed-media-channel.cpp |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/TelepathyQt4/streamed-media-channel.cpp b/TelepathyQt4/streamed-media-channel.cpp
index daf149d..3f3999c 100644
--- a/TelepathyQt4/streamed-media-channel.cpp
+++ b/TelepathyQt4/streamed-media-channel.cpp
@@ -995,14 +995,22 @@ void StreamedMediaChannel::gotLocalHoldState(QDBusPendingCallWatcher *watcher)
 void StreamedMediaChannel::onLocalHoldStateChanged(uint localHoldState,
         uint localHoldStateReason)
 {
+    bool changed = false;
+    if (mPriv->localHoldState != static_cast<LocalHoldState>(localHoldState) ||
+        mPriv->localHoldStateReason != static_cast<LocalHoldStateReason>(localHoldStateReason)) {
+        changed = true;
+    }
+
     mPriv->localHoldState = static_cast<LocalHoldState>(localHoldState);
     mPriv->localHoldStateReason = static_cast<LocalHoldStateReason>(localHoldStateReason);
 
     if (!isReady(FeatureLocalHoldState)) {
         mPriv->readinessHelper->setIntrospectCompleted(FeatureLocalHoldState, true);
     } else {
-        emit localHoldStateChanged(mPriv->localHoldState,
-                mPriv->localHoldStateReason);
+        if (changed) {
+            emit localHoldStateChanged(mPriv->localHoldState,
+                    mPriv->localHoldStateReason);
+        }
     }
 }
 
-- 
1.5.6.5




More information about the telepathy-commits mailing list