[tracker] libtracker-common: Don't emit the changed signal for one edit
- From: Martyn James Russell <mr src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] libtracker-common: Don't emit the changed signal for one edit
- Date: Tue, 9 Feb 2010 23:11:00 +0000 (UTC)
commit 81cd844be6f783a35aaf9cb6bc377b5cccb0ed33
Author: Martyn Russell <martyn lanedo com>
Date: Mon Feb 8 16:10:46 2010 +0100
libtracker-common: Don't emit the changed signal for one edit
This occurred twice for vim edits.
src/libtracker-common/tracker-config-file.c | 17 ++++++++++++++---
1 files changed, 14 insertions(+), 3 deletions(-)
---
diff --git a/src/libtracker-common/tracker-config-file.c b/src/libtracker-common/tracker-config-file.c
index eb387e2..0bb5b98 100644
--- a/src/libtracker-common/tracker-config-file.c
+++ b/src/libtracker-common/tracker-config-file.c
@@ -230,20 +230,31 @@ config_changed_cb (GFileMonitor *monitor,
gpointer user_data)
{
TrackerConfigFile *file;
- gchar *filename;
+ gchar *filename;
+ GTimeVal time_now;
+ static GTimeVal time_last = { 0 };
file = TRACKER_CONFIG_FILE (user_data);
/* Do we recreate if the file is deleted? */
+ /* Don't emit multiple signals for the same edit. */
+ g_get_current_time (&time_now);
+
switch (event_type) {
case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT:
case G_FILE_MONITOR_EVENT_CREATED:
+ if ((time_now.tv_sec - time_last.tv_sec) < 1) {
+ return;
+ }
+
+ time_last = time_now;
+
file->file_exists = TRUE;
filename = g_file_get_path (this_file);
- g_message ("Config file changed:'%s', reloading settings...",
- filename);
+ g_message ("Config file changed:'%s', reloading settings..., event:%d",
+ filename, event_type);
g_free (filename);
config_load (file);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]