From 4e46fd01ff3c5d1c9a6400a0533d36d4bc56dfb2 Mon Sep 17 00:00:00 2001 From: Stefano Karapetsas Date: Thu, 8 Nov 2012 00:33:57 +0100 Subject: gst-mixer: allow to hide whitelist elements --- gst-mixer/src/schemas.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'gst-mixer/src/schemas.c') diff --git a/gst-mixer/src/schemas.c b/gst-mixer/src/schemas.c index a8277cc..599d4bc 100644 --- a/gst-mixer/src/schemas.c +++ b/gst-mixer/src/schemas.c @@ -67,10 +67,8 @@ schemas_gsettings_append_strv (GSettings *settings, const gchar *key, const gcha new[size - 2] = g_strdup (value); new[size - 1] = NULL; - g_settings_delay (settings); retval = g_settings_set_strv (settings, key, (const gchar **) new); - g_settings_apply (settings); g_strfreev (new); @@ -84,6 +82,7 @@ schemas_gsettings_remove_all_from_strv (GSettings *settings, const gchar *key, c GArray *array; gchar **old; gint i; + gboolean changed = FALSE; gboolean retval; old = g_settings_get_strv (settings, key); @@ -92,12 +91,15 @@ schemas_gsettings_remove_all_from_strv (GSettings *settings, const gchar *key, c for (i = 0; old[i] != NULL; i++) { if (g_strcmp0 (old[i], value) != 0) array = g_array_append_val (array, old[i]); + else + changed = TRUE; } - g_settings_delay (settings); - retval = g_settings_set_strv (settings, key, - (const gchar **) array->data); - g_settings_apply (settings); + if (changed) + retval = g_settings_set_strv (settings, key, + (const gchar **) array->data); + else + retval = TRUE; g_strfreev (old); g_array_free (array, TRUE); -- cgit v1.2.1