summaryrefslogtreecommitdiffstats
path: root/audio/telephony-maemo.c
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2008-10-22 15:02:52 +0300
committerJohan Hedberg <johan.hedberg@nokia.com>2008-12-08 16:10:57 +0200
commit3268a8f5e7de350b10e169ad36a86f5c0063ea32 (patch)
tree513f743a8fc2d49abdad7f803003cead9ffd49c2 /audio/telephony-maemo.c
parentfa15432a30e9726a79ad01596c2dd296c224e8b1 (diff)
Send correct "callheld" indicator when call becomes active from being held
Diffstat (limited to 'audio/telephony-maemo.c')
-rw-r--r--audio/telephony-maemo.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/audio/telephony-maemo.c b/audio/telephony-maemo.c
index 50ad4fb1..24b26996 100644
--- a/audio/telephony-maemo.c
+++ b/audio/telephony-maemo.c
@@ -569,6 +569,9 @@ static void handle_call_status(DBusMessage *msg, const char *call_path)
EV_CALLSETUP_OUTGOING);
break;
case CSD_CALL_STATUS_COMING:
+ /* Actuall incoming call handling is done in
+ * handle_incoming_call() which is called when we get the
+ * Call.Coming() signal */
call->originating = FALSE;
call->setup = TRUE;
break;
@@ -586,9 +589,17 @@ static void handle_call_status(DBusMessage *msg, const char *call_path)
case CSD_CALL_STATUS_ANSWERED:
break;
case CSD_CALL_STATUS_ACTIVE:
- if (call->on_hold)
+ if (call->on_hold) {
call->on_hold = FALSE;
- else {
+ if (find_call_with_status(CSD_CALL_STATUS_HOLD))
+ telephony_update_indicator(maemo_indicators,
+ "callheld",
+ EV_CALLHELD_MULTIPLE);
+ else
+ telephony_update_indicator(maemo_indicators,
+ "callheld",
+ EV_CALLHELD_NONE);
+ } else {
telephony_update_indicator(maemo_indicators, "call",
EV_CALL_ACTIVE);
telephony_update_indicator(maemo_indicators,