summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivek Dasmohapatra <vivek@collabora.co.uk>2011-03-22 20:28:26 +0000
committerVivek Dasmohapatra <vivek@collabora.co.uk>2011-04-05 14:19:10 +0100
commit1e23d9051b6f001e2ae77557783248ae1d7f5c33 (patch)
tree646d69a5fbb1e446ee4133308860dec9cde73efc
parentd1e2989bf0eae978f2eb20c1791d858d0720c059 (diff)
downloadtelepathy-mission-control-1e23d9051b6f001e2ae77557783248ae1d7f5c33.tar.gz
The service properties shouldn't get deleted when the account is updated
-rw-r--r--src/mcd-account-manager-sso.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mcd-account-manager-sso.c b/src/mcd-account-manager-sso.c
index d5985260..5752985e 100644
--- a/src/mcd-account-manager-sso.c
+++ b/src/mcd-account-manager-sso.c
@@ -434,6 +434,7 @@ static void _sso_updated (AgAccount *account,
const gchar *deleted_key;
guint i;
gboolean params_updated = FALSE;
+ const gchar *immutables[] = { MC_SERVICE_KEY, SERVICES_KEY, NULL };
/* account has no name yet: might be time to create it */
if (name == NULL)
@@ -496,6 +497,15 @@ static void _sso_updated (AgAccount *account,
}
}
+ /* special case values always exist and therefore cannot be deleted */
+ for (i = 0; immutables[i] != NULL; i++)
+ {
+ Setting *immutable = setting_data (immutables[i], SETTING_AG);
+
+ g_hash_table_remove (unseen, immutable->ag_name);
+ clear_setting_data (immutable);
+ }
+
/* signal (and update) deleted settings: */
g_hash_table_iter_init (&deleted_iter, unseen);