bugfix: efm current .desktop fetching now returns the right .desktop
authorMike Blumenkrantz <zmike@samsung.com>
Fri, 28 Mar 2014 16:17:35 +0000 (12:17 -0400)
committerMike Blumenkrantz <zmike@samsung.com>
Fri, 28 Mar 2014 16:23:18 +0000 (12:23 -0400)
fix T792

src/bin/e_fm.c

index bc6bec0e3b808fe7ca02c9d7cb0176ad1a0cc909..225cad2357e57c301eca20e115854d5b4507a4be 100644 (file)
@@ -10085,11 +10085,16 @@ _e_fm2_desktop_open(E_Fm2_Smart_Data *sd)
    Eina_Bool ret;
 
    snprintf(buf, sizeof(buf), "%s/.directory.desktop", sd->realpath);
+   if (sd->desktop)
+     {
+        if (!e_util_strcmp(buf, sd->desktop->orig_path)) return 1;
+     }
    ret = ecore_file_exists(buf) ? ecore_file_can_write(buf)
      : ecore_file_can_write(sd->realpath);
    if (!ret) return -1;
    ef = efreet_desktop_new(buf);
    if (!ef) return 0;
+   efreet_desktop_free(sd->desktop);
    sd->desktop = ef;
    return 1;
 }
@@ -11625,6 +11630,7 @@ EAPI Efreet_Desktop *
 e_fm2_desktop_get(Evas_Object *obj)
 {
    EFM_SMART_CHECK(NULL);
+   if (_e_fm2_desktop_open(sd) != 1) return NULL;
    return sd->desktop;
 }