File libfm-1.2.3-Fix-SF914.patch of Package libfm
From b0d178ef0e0a5c5a064c2f8a284fbba4760023dc Mon Sep 17 00:00:00 2001
From: Andriy Grytsenko <andrej@rep.kiev.ua>
Date: Thu, 7 May 2015 19:31:29 +0300
Subject: [PATCH] [SF#914] Fix missing folder info update on folder attributes
change.
When folder itself was changed, no info update came so all it's info in
'Properties' window stayed the same. We have to update the FmFileInfo too.
---
NEWS | 2 ++
src/base/fm-folder.c | 10 ++++++++--
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/NEWS b/NEWS
index 0356f25..60d70a1 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,8 @@
* Fixed handling %c in desktop entry Exec key: launch may fail if the
application name contains spaces so it needs quoting.
+* Fixed missing folder info update on folder attributes change.
+
Changes on 1.2.3 since 1.2.2:
diff --git a/src/base/fm-folder.c b/src/base/fm-folder.c
index 6773cb0..cfee540 100644
--- a/src/base/fm-folder.c
+++ b/src/base/fm-folder.c
@@ -376,8 +376,12 @@ static void on_file_info_job_finished(FmFileInfoJob* job, FmFolder* folder)
{
FmFileInfo* fi = (FmFileInfo*)l->data;
FmPath* path = fm_file_info_get_path(fi);
- GList* l2 = _fm_folder_get_file_by_path(folder, path);
- if(l2) /* the file is already in the folder, update */
+ GList* l2;
+ if (path == fm_file_info_get_path(folder->dir_fi))
+ /* update for folder itself, also see FIXME below! */
+ fm_file_info_update(folder->dir_fi, fi);
+ else if ((l2 = _fm_folder_get_file_by_path(folder, path)))
+ /* the file is already in the folder, update */
{
FmFileInfo* fi2 = (FmFileInfo*)l2->data;
/* FIXME: will fm_file_info_update here cause problems?
@@ -665,6 +669,8 @@ static void on_folder_changed(GFileMonitor* mon, GFile* gf, GFile* other, GFileM
case G_FILE_MONITOR_EVENT_CHANGED:
folder->pending_change_notify = TRUE;
G_LOCK(lists);
+ folder->files_to_update = g_slist_append(folder->files_to_update,
+ fm_path_new_for_gfile(gf));
if(!folder->idle_handler)
folder->idle_handler = g_idle_add_full(G_PRIORITY_LOW, (GSourceFunc)on_idle, folder, NULL);
G_UNLOCK(lists);
--
2.1.4