summaryrefslogtreecommitdiffstats
path: root/audio/telephony-maemo.c
diff options
context:
space:
mode:
Diffstat (limited to 'audio/telephony-maemo.c')
-rw-r--r--audio/telephony-maemo.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/audio/telephony-maemo.c b/audio/telephony-maemo.c
index 06b2814c..5433885c 100644
--- a/audio/telephony-maemo.c
+++ b/audio/telephony-maemo.c
@@ -959,6 +959,10 @@ static void handle_call_status(DBusMessage *msg, const char *call_path)
case CSD_CALL_STATUS_ACTIVE:
if (call->on_hold) {
call->on_hold = FALSE;
+ /* Set the status already here since otherwise
+ * find_call_with_status will match this call even
+ * though it shouldn't */
+ call->status = (int) status;
if (find_call_with_status(CSD_CALL_STATUS_HOLD))
telephony_update_indicator(maemo_indicators,
"callheld",
@@ -1000,6 +1004,16 @@ static void handle_call_status(DBusMessage *msg, const char *call_path)
case CSD_CALL_STATUS_RECONNECT_PENDING:
break;
case CSD_CALL_STATUS_TERMINATED:
+ if (call->on_hold) {
+ /* Set the status already here since otherwise
+ * find_call_with_status will match this call even
+ * though it shouldn't */
+ call->status = (int) status;
+ if (!find_call_with_status(CSD_CALL_STATUS_HOLD))
+ telephony_update_indicator(maemo_indicators,
+ "callheld",
+ EV_CALLHELD_NONE);
+ }
break;
case CSD_CALL_STATUS_SWAP_INITIATED:
break;