summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2017-10-20 02:18:09 +0200
committerCarlos Garnacho <carlosg@gnome.org>2017-11-14 22:45:26 +0100
commit72a6dd11300a2d74c7a9f265b3f5906e6031f45f (patch)
tree5006a6d351f336ec484e418a4d2d503973112690 /src
parent33ea86a5dc69c45d2cdcc826247d453e4d332ba1 (diff)
downloadtracker-72a6dd11300a2d74c7a9f265b3f5906e6031f45f.tar.gz
libtracker-miner: Always use interned files when emitting ::file-deleted
There were other places that didn't ensure that TrackerFileNotifier used interned files when emitting ::file-* signals.
Diffstat (limited to 'src')
-rw-r--r--src/libtracker-miner/tracker-file-notifier.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libtracker-miner/tracker-file-notifier.c b/src/libtracker-miner/tracker-file-notifier.c
index ba225e89d..1dbbb199a 100644
--- a/src/libtracker-miner/tracker-file-notifier.c
+++ b/src/libtracker-miner/tracker-file-notifier.c
@@ -1104,9 +1104,17 @@ monitor_item_created_cb (TrackerMonitor *monitor,
/* New file triggered a directory content
* filter, remove parent directory altogether
*/
- g_signal_emit (notifier, signals[FILE_DELETED], 0, parent);
- file_notifier_current_root_check_remove_directory (notifier, parent);
+ canonical = tracker_file_system_get_file (priv->file_system,
+ parent, G_FILE_TYPE_DIRECTORY,
+ NULL);
g_object_unref (parent);
+
+ g_object_ref (canonical);
+ g_signal_emit (notifier, signals[FILE_DELETED], 0, canonical);
+ file_notifier_current_root_check_remove_directory (notifier, canonical);
+ tracker_file_system_forget_files (priv->file_system, canonical,
+ G_FILE_TYPE_UNKNOWN);
+ g_object_unref (canonical);
return;
}