From 1ba91398ee28def4fcbb149be73caff20200d52d Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 12 Sep 2012 16:42:29 +0000 Subject: [PATCH] efm now saves your first screen's desktop directory when desktop navigation is enabled so that it can display that directory on subsequent startups SVN revision: 76547 --- src/modules/fileman/e_fwin.c | 11 +++++++++-- src/modules/fileman/e_mod_main.c | 22 ++++++++++++++-------- src/modules/fileman/e_mod_main.h | 3 ++- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/modules/fileman/e_fwin.c b/src/modules/fileman/e_fwin.c index 54c65eaaa..e2dde015d 100644 --- a/src/modules/fileman/e_fwin.c +++ b/src/modules/fileman/e_fwin.c @@ -459,7 +459,7 @@ e_fwin_reload_all(void) if (e_fwin_zone_find(zone)) continue; if ((zone->container->num == 0) && (zone->num == 0) && (fileman_config->view.show_desktop_icons)) - e_fwin_zone_new(zone, "desktop", "/"); + e_fwin_zone_new(zone, fileman_config->dev, fileman_config->path); else { char buf[256]; @@ -1604,7 +1604,14 @@ _e_fwin_changed(void *data, e_fm2_custom_theme_set(obj, NULL); _e_fwin_icon_mouse_out(fwin, NULL, NULL); - if (fwin->zone) return; + if (fwin->zone) + { + if (fwin->zone->num) return; + e_fm2_path_get(page->fm_obj, &dev, &path); + eina_stringshare_replace(&fileman_config->dev, dev); + eina_stringshare_replace(&fileman_config->path, path); + return; + } _e_fwin_window_title_set(page); if (page->setting) return; if (page->flist) e_fm2_deselect_all(page->flist); diff --git a/src/modules/fileman/e_mod_main.c b/src/modules/fileman/e_mod_main.c index 222485bb2..a5c42e225 100644 --- a/src/modules/fileman/e_mod_main.c +++ b/src/modules/fileman/e_mod_main.c @@ -93,7 +93,7 @@ e_modapi_init(E_Module *m) if (e_fwin_zone_find(zone)) continue; if ((zone->container->num == 0) && (zone->num == 0) && (fileman_config->view.show_desktop_icons)) - e_fwin_zone_new(zone, "desktop", "/"); + e_fwin_zone_new(zone, fileman_config->dev, fileman_config->path); else { char buf[256]; @@ -701,6 +701,8 @@ _e_mod_fileman_config_load(void) E_CONFIG_VAL(D, T, tooltip.delay, DOUBLE); E_CONFIG_VAL(D, T, tooltip.size, DOUBLE); E_CONFIG_VAL(D, T, tooltip.enable, UCHAR); + E_CONFIG_VAL(D, T, dev, STR); + E_CONFIG_VAL(D, T, path, STR); fileman_config = e_config_domain_load("module.fileman", conf_edd); if (fileman_config) @@ -772,6 +774,11 @@ _e_mod_fileman_config_load(void) fileman_config->tooltip.enable = 1; IFMODCFGEND; + IFMODCFG(0x0111); + fileman_config->dev = eina_stringshare_add("desktop"); + fileman_config->path = eina_stringshare_add("/"); + IFMODCFGEND; + fileman_config->config_version = MOD_CONFIG_FILE_VERSION; /* UCHAR's give nasty compile warnings about comparisons so not gonna limit those */ @@ -790,12 +797,11 @@ _e_mod_fileman_config_load(void) static void _e_mod_fileman_config_free(void) { - if (fileman_config->theme.background) - eina_stringshare_del(fileman_config->theme.background); - if (fileman_config->theme.frame) - eina_stringshare_del(fileman_config->theme.frame); - if (fileman_config->theme.icons) - eina_stringshare_del(fileman_config->theme.icons); + eina_stringshare_del(fileman_config->theme.background); + eina_stringshare_del(fileman_config->theme.frame); + eina_stringshare_del(fileman_config->theme.icons); + eina_stringshare_del(fileman_config->dev); + eina_stringshare_del(fileman_config->path); E_FREE(fileman_config); } @@ -813,7 +819,7 @@ _e_mod_zone_add(__UNUSED__ void *data, if (e_fwin_zone_find(zone)) return ECORE_CALLBACK_PASS_ON; if ((zone->container->num == 0) && (zone->num == 0) && (fileman_config->view.show_desktop_icons)) - e_fwin_zone_new(zone, "desktop", "/"); + e_fwin_zone_new(zone, fileman_config->dev, fileman_config->path); else { char buf[256]; diff --git a/src/modules/fileman/e_mod_main.h b/src/modules/fileman/e_mod_main.h index 49d20867e..7ea62d0f5 100644 --- a/src/modules/fileman/e_mod_main.h +++ b/src/modules/fileman/e_mod_main.h @@ -4,7 +4,7 @@ /* Increment for Major Changes */ #define MOD_CONFIG_FILE_EPOCH 0x0001 /* Increment for Minor Changes (ie: user doesn't need a new config) */ -#define MOD_CONFIG_FILE_GENERATION 0x0111 +#define MOD_CONFIG_FILE_GENERATION 0x0112 #define MOD_CONFIG_FILE_VERSION ((MOD_CONFIG_FILE_EPOCH << 16) | MOD_CONFIG_FILE_GENERATION) typedef struct _Config Config; @@ -101,6 +101,7 @@ struct _Config const char *icons; unsigned char fixed; } theme; + const char *dev, *path; // stored from desktop navigation mode }; EAPI extern E_Module_Api e_modapi;