we need to monitor each theme dir too
authorenglebass <englebass@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 24 Nov 2010 21:18:56 +0000 (21:18 +0000)
committerenglebass <englebass@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 24 Nov 2010 21:18:56 +0000 (21:18 +0000)
xdg-icon-resource creates and deletes a file called
.xdg-icon-resource-dummy in each dir.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/efreet@54962 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/efreet_icon.c

index 25b06dd..4f21521 100644 (file)
@@ -1962,11 +1962,30 @@ efreet_icon_changes_monitor_add(const char *path)
     char rp[PATH_MAX];
 
     if (!realpath(path, rp)) return;
+    if (!ecore_file_is_dir(rp)) return;
     if (eina_hash_find(change_monitors, rp)) return;
     eina_hash_add(change_monitors, rp,
                   ecore_file_monitor_add(rp,
                                          efreet_icon_changes_cb,
                                          NULL));
+
+    if (ecore_file_is_dir(rp))
+    {
+        Eina_Iterator *it;
+        const char *ent;
+
+        it = eina_file_ls(rp);
+        if (!it) return;
+        EINA_ITERATOR_FOREACH(it, ent)
+        {
+            if (!realpath(ent, rp)) continue;
+            if (!ecore_file_is_dir(rp)) continue;
+            eina_hash_add(change_monitors, rp,
+                            ecore_file_monitor_add(rp,
+                                    efreet_icon_changes_cb,
+                                    NULL));
+        }
+    }
 }
 
 static void