diff --git a/src/e_mod_places.c b/src/e_mod_places.c index 5fca5a7..2dcc227 100644 --- a/src/e_mod_places.c +++ b/src/e_mod_places.c @@ -882,6 +882,8 @@ _places_header_activated_cb(void *data, Evas_Object *o, const char *emission, co /* E17 menu augmentation */ +static Eina_List *_menu_strings = NULL; + void _places_menu_folder_cb(void *data, E_Menu *m, E_Menu_Item *mi) { @@ -909,11 +911,15 @@ _places_bookmarks_parse(E_Menu *em) { char line[PATH_MAX]; char buf[PATH_MAX]; + const char *s; E_Menu_Item *mi; Efreet_Uri *uri; char *alias; FILE* fp; + EINA_LIST_FREE(_menu_strings, s) + eina_stringshare_del(s); + snprintf(buf, sizeof(buf), "%s/gtk-3.0/bookmarks", efreet_config_home_get()); fp = fopen(buf, "r"); if (!fp) @@ -940,8 +946,9 @@ _places_bookmarks_parse(E_Menu *em) e_menu_item_label_set(mi, alias ? alias : ecore_file_file_get(uri->path)); e_util_menu_item_theme_icon_set(mi, "user-bookmarks"); - e_menu_item_callback_set(mi, _places_menu_folder_cb, - strdup(uri->path)); //TODO free somewhere + s = eina_stringshare_add(uri->path); + e_menu_item_callback_set(mi, _places_menu_folder_cb, s); + _menu_strings = eina_list_append(_menu_strings, s); } if (uri) efreet_uri_free(uri); }