On Sun, Aug 10, 2008 at 07:08:20PM -0500, Nick Hughart wrote:
> This change:
>
> - snprintf(buf, sizeof(buf), "%s/.e/e/fileman/favorites/|%s_%d.desktop",
> + snprintf(buf, sizeof(buf) - 1, "%s/.e/e/fileman/favorites/|%s_%d.desktop",
> e_user_homedir_get(), id, v->partition_number);
>
> isn't necessary. snprintf is smart enough to know that it needs space for
> the null character :)
Ah... Use this one instead then.
--
King regards,
Fedor Gusev.
diff --git a/src/bin/e_config.c b/src/bin/e_config.c
index 4489b8f..e06515f 100644
--- a/src/bin/e_config.c
+++ b/src/bin/e_config.c
@@ -587,6 +587,8 @@ e_config_init(void)
E_CONFIG_VAL(D, T, thumbscroll_momentum_threshhold, DOUBLE);
E_CONFIG_VAL(D, T, thumbscroll_friction, DOUBLE);
+ E_CONFIG_VAL(D, T, hal_desktop, INT);
+
e_config = e_config_domain_load("e", _e_config_edd);
if (e_config)
{
@@ -763,6 +765,7 @@ e_config_init(void)
e_config->display_res_hz = 0;
e_config->display_res_rotation = 0;
+ e_config->hal_desktop = 1;
{
E_Config_Module *em;
diff --git a/src/bin/e_config.h b/src/bin/e_config.h
index c8edfcd..683b650 100644
--- a/src/bin/e_config.h
+++ b/src/bin/e_config.h
@@ -286,6 +286,8 @@ struct _E_Config
int thumbscroll_threshhold;
double thumbscroll_momentum_threshhold;
double thumbscroll_friction;
+
+ int hal_desktop;
};
struct _E_Config_Module
diff --git a/src/bin/e_fm_hal.c b/src/bin/e_fm_hal.c
index 031de46..daa3d3e 100644
--- a/src/bin/e_fm_hal.c
+++ b/src/bin/e_fm_hal.c
@@ -292,13 +292,16 @@ _e_fm2_volume_write(E_Volume *v)
v->udi);
fclose(f);
- snprintf(buf2, sizeof(buf2), "%s/Desktop/|%s_%d.desktop",
- e_user_homedir_get(), id, v->partition_number);
- ecore_file_symlink(buf, buf2);
+ if(e_config->hal_desktop)
+ {
+ snprintf(buf2, sizeof(buf2), "%s/Desktop/|%s_%d.desktop",
+ e_user_homedir_get(), id, v->partition_number);
+ ecore_file_symlink(buf, buf2);
+ _e_fm2_file_force_update(buf2);
+ }
/* FIXME: manipulate icon directly */
_e_fm2_file_force_update(buf);
- _e_fm2_file_force_update(buf2);
}
}
@@ -315,14 +318,18 @@ _e_fm2_volume_erase(E_Volume *v)
if (!v->storage) return;
id = ecore_file_file_get(v->storage->udi);
- snprintf(buf, sizeof(buf) - 1, "%s/Desktop/|%s_%d.desktop",
- e_user_homedir_get(), id, v->partition_number);
- ecore_file_unlink(buf);
- _e_fm2_file_force_update(buf);
- snprintf(buf, sizeof(buf) - 1, "%s/.e/e/fileman/favorites/|%s_%d.desktop",
+ snprintf(buf, sizeof(buf), "%s/Desktop/|%s_%d.desktop",
e_user_homedir_get(), id, v->partition_number);
ecore_file_unlink(buf);
_e_fm2_file_force_update(buf);
+
+ if(e_config->hal_desktop)
+ {
+ snprintf(buf, sizeof(buf), "%s/.e/e/fileman/favorites/|%s_%d.desktop",
+ e_user_homedir_get(), id, v->partition_number);
+ ecore_file_unlink(buf);
+ _e_fm2_file_force_update(buf);
+ }
}
EAPI E_Volume *
@@ -488,3 +495,62 @@ _e_fm2_hal_mount_timeout(E_Fm2_Mount *m)
return 0;
}
+EAPI void
+e_fm2_hal_show_desktop_icons(void)
+{
+ Evas_List *l;
+ E_Volume *v;
+ char buf[PATH_MAX] = {0};
+ char buf2[PATH_MAX] = {0};
+ const char *id;
+
+ for(l = _e_vols; l; l = evas_list_next(l))
+ {
+ v = evas_list_data(l);
+
+ if(!v) continue;
+ if (!v->storage) continue;
+
+ id = ecore_file_file_get(v->storage->udi);
+
+ snprintf(buf, sizeof(buf), "%s/.e/e/fileman/favorites/|%s_%d.desktop",
+ e_user_homedir_get(), id, v->partition_number);
+
+ snprintf(buf2, sizeof(buf2), "%s/Desktop/|%s_%d.desktop",
+ e_user_homedir_get(), id, v->partition_number);
+
+ if(ecore_file_exists(buf) && !ecore_file_exists(buf2))
+ {
+ ecore_file_symlink(buf, buf2);
+ _e_fm2_file_force_update(buf2);
+ }
+ }
+}
+
+EAPI void
+e_fm2_hal_hide_desktop_icons(void)
+{
+ Evas_List *l;
+ E_Volume *v;
+ char buf[PATH_MAX] = {0};
+ const char *id;
+
+ for(l = _e_vols; l; l = evas_list_next(l))
+ {
+ v = evas_list_data(l);
+
+ if(!v) continue;
+ if (!v->storage) continue;
+
+ id = ecore_file_file_get(v->storage->udi);
+
+ snprintf(buf, sizeof(buf), "%s/Desktop/|%s_%d.desktop",
+ e_user_homedir_get(), id, v->partition_number);
+
+ if(ecore_file_exists(buf))
+ {
+ ecore_file_unlink(buf);
+ _e_fm2_file_force_update(buf);
+ }
+ }
+}
diff --git a/src/bin/e_fm_hal.h b/src/bin/e_fm_hal.h
index fc352f7..4691e7b 100644
--- a/src/bin/e_fm_hal.h
+++ b/src/bin/e_fm_hal.h
@@ -25,4 +25,7 @@ EAPI E_Fm2_Mount *e_fm2_hal_mount(E_Volume *v,
void *data);
EAPI void e_fm2_hal_unmount(E_Fm2_Mount *m);
+EAPI void e_fm2_hal_show_desktop_icons(void);
+EAPI void e_fm2_hal_hide_desktop_icons(void);
+
#endif
diff --git a/src/modules/fileman/e_mod_config.c b/src/modules/fileman/e_mod_config.c
index 901b98b..fe67e95 100644
--- a/src/modules/fileman/e_mod_config.c
+++ b/src/modules/fileman/e_mod_config.c
@@ -58,6 +58,11 @@ struct _E_Config_Dialog_Data
int fixed;
} theme;
+ struct
+ {
+ int desktop;
+ } hal;
+
E_Config_Dialog *cfd;
};
@@ -110,6 +115,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->icon.icon.h = fileman_config->icon.icon.h;
cfdata->icon.extension.show = fileman_config->icon.extension.show;
cfdata->list.sort.dirs.first = fileman_config->list.sort.dirs.first;
+ cfdata->hal.desktop = e_config->hal_desktop;
}
static void
@@ -136,6 +142,16 @@ _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
fileman_config->list.sort.dirs.first = cfdata->list.sort.dirs.first;
fileman_config->list.sort.dirs.last = !(cfdata->list.sort.dirs.first);
+
+ e_config->hal_desktop = cfdata->hal.desktop;
+ if(e_config->hal_desktop)
+ {
+ e_fm2_hal_show_desktop_icons();
+ }
+ else
+ {
+ e_fm2_hal_hide_desktop_icons();
+ }
e_config_save_queue();
@@ -197,6 +213,8 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
ob = e_widget_check_add(evas, _("Show Toolbar"),
&(cfdata->view.show_toolbar));
e_widget_list_object_append(o, ob, 1, 1, 0.5);
-
+ ob = e_widget_check_add(evas, _("Show HAL icons on desktop"),
+ &(cfdata->hal.desktop));
+ e_widget_list_object_append(o, ob, 1, 1, 0.5);
return o;
}
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel