efm no longer restores non-default desktop paths if desktop navigation option is...
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 26 Nov 2012 09:01:26 +0000 (09:01 +0000)
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 26 Nov 2012 09:01:26 +0000 (09:01 +0000)
ticket #1835

SVN revision: 79680

src/modules/fileman/e_mod_main.c

index 68472aed947bb5df529dee1798f4a330e8625469..2a6ee6b4c4c60779423be49f05cfe1afadd1809b 100644 (file)
@@ -407,21 +407,26 @@ e_mod_fileman_path_find(E_Zone *zone)
 {
    Eina_List *l;
    Fileman_Path *path;
-   char buf[256];
 
    EINA_LIST_FOREACH(fileman_config->paths, l, path)
-     if (path->zone == zone->container->num + zone->num) return path;
-   path = E_NEW(Fileman_Path, 1);
-   path->zone = zone->container->num + zone->num;
-   path->dev = eina_stringshare_add("desktop");
+     if (path->zone == zone->container->num + zone->num) break;
+   if (l && fileman_config->view.desktop_navigation) return path;
+   if (l)
+     {
+        eina_stringshare_replace(&path->path, NULL);
+        eina_stringshare_replace(&path->dev, NULL);
+     }
+   else
+     {
+        path = E_NEW(Fileman_Path, 1);
+        path->zone = zone->container->num + zone->num;
+        path->dev = eina_stringshare_add("desktop");
+        fileman_config->paths = eina_list_append(fileman_config->paths, path);
+     }
    path->desktop_mode = E_FM2_VIEW_MODE_CUSTOM_ICONS;
    if ((zone->container->num == 0) && (zone->num == 0))
      path->path = eina_stringshare_add("/");
    else
-     {
-        snprintf(buf, sizeof(buf), "%i", (zone->container->num + zone->num));
-        path->path = eina_stringshare_add(buf);
-     }
-   fileman_config->paths = eina_list_append(fileman_config->paths, path);
+     path->path = eina_stringshare_printf("%d", (zone->container->num + zone->num));
    return path;
 }