[nautilus] desktop-metadata: group multiple desktop metadata saving calls
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] desktop-metadata: group multiple desktop metadata saving calls
- Date: Tue, 1 Feb 2011 14:20:42 +0000 (UTC)
commit 25754a54bb0889187d9b5cb45e6c32ae9321f038
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Tue Feb 1 09:19:44 2011 -0500
desktop-metadata: group multiple desktop metadata saving calls
libnautilus-private/nautilus-desktop-metadata.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/libnautilus-private/nautilus-desktop-metadata.c b/libnautilus-private/nautilus-desktop-metadata.c
index b9c0d4d..80dcfe4 100644
--- a/libnautilus-private/nautilus-desktop-metadata.c
+++ b/libnautilus-private/nautilus-desktop-metadata.c
@@ -36,6 +36,8 @@
#include <sys/stat.h>
#include <fcntl.h>
+static guint save_in_idle_source_id = 0;
+
static gchar *
get_keyfile_path (void)
{
@@ -57,6 +59,8 @@ save_in_idle_cb (gpointer data)
gsize length;
GError *error = NULL;
+ save_in_idle_source_id = 0;
+
contents = g_key_file_to_data (keyfile, &length, NULL);
filename = get_keyfile_path ();
@@ -78,7 +82,11 @@ save_in_idle_cb (gpointer data)
static void
save_in_idle (GKeyFile *keyfile)
{
- g_idle_add (save_in_idle_cb, keyfile);
+ if (save_in_idle_source_id != 0) {
+ g_source_remove (save_in_idle_source_id);
+ }
+
+ save_in_idle_source_id = g_idle_add (save_in_idle_cb, keyfile);
}
static GKeyFile *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]