summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivek Dasmohapatra <vivek@collabora.co.uk>2011-03-28 19:28:33 +0100
committerVivek Dasmohapatra <vivek@collabora.co.uk>2011-04-05 14:19:11 +0100
commit02c76ce59f1bb8ef11630cd5f0c21d3cf79c9246 (patch)
tree8e1e383381784de7958d114e3e0b4017ddc5614b
parent297c55b3e7d4c16cc2af8ee07f14879bd4f7c310 (diff)
downloadtelepathy-mission-control-02c76ce59f1bb8ef11630cd5f0c21d3cf79c9246.tar.gz
Force Account.Removed to be emitted when the account is, well, removed.
-rw-r--r--src/mcd-account.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mcd-account.c b/src/mcd-account.c
index 85f5ffb2..ca6a34b9 100644
--- a/src/mcd-account.c
+++ b/src/mcd-account.c
@@ -789,8 +789,19 @@ mcd_account_delete (McdAccount *account,
}
mcd_storage_commit (priv->storage, name);
+
if (callback != NULL)
callback (account, NULL, user_data);
+
+ /* If the account was not removed via the DBus Account interface code *
+ * path and something is holding a ref to it so it does not get disposed, *
+ * then this signal may not get fired, so we make sure it _does_ here */
+ if (!priv->removed)
+ {
+ DEBUG ("Forcing Account.Removed for %s", name);
+ priv->removed = TRUE;
+ tp_svc_account_emit_removed (account);
+ }
}
void