diff --git a/src/modules/fileman/e_fwin.c b/src/modules/fileman/e_fwin.c index 44c97f7da..60097f3d4 100644 --- a/src/modules/fileman/e_fwin.c +++ b/src/modules/fileman/e_fwin.c @@ -2052,17 +2052,20 @@ _e_fwin_cb_menu_extend_start(void *data, selected = e_fm2_selected_list_get(page->fm_obj); #ifdef ENABLE_FILES - e_mod_menu_add(m); + subm = e_mod_menu_add(m); if (((!page->fwin->zone) || fileman_config->view.desktop_navigation) && e_fm2_has_parent_get(obj)) { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Go to Parent Directory")); + mi = e_menu_item_new_relative(subm, NULL); + e_menu_item_label_set(mi, _("Go To Parent Directory")); e_menu_item_icon_edje_set(mi, e_theme_edje_file_get("base/theme/fileman", "e/fileman/default/button/parent"), "e/fileman/default/button/parent"); e_menu_item_callback_set(mi, _e_fwin_parent, obj); + + mi = e_menu_item_new(subm); + e_menu_item_separator_set(mi, EINA_TRUE); } mi = e_menu_item_new(m); e_menu_item_separator_set(mi, EINA_TRUE); diff --git a/src/modules/fileman/e_mod_main.h b/src/modules/fileman/e_mod_main.h index 8407297b5..a2a521e94 100644 --- a/src/modules/fileman/e_mod_main.h +++ b/src/modules/fileman/e_mod_main.h @@ -120,7 +120,7 @@ EAPI int e_modapi_save(E_Module *m); extern Config *fileman_config; Fileman_Path *e_mod_fileman_path_find(E_Zone *zone); -void e_mod_menu_add(E_Menu *m); +E_Menu *e_mod_menu_add(E_Menu *m); E_Config_Dialog *e_int_config_fileman(E_Container *con, const char *params __UNUSED__); diff --git a/src/modules/fileman/e_mod_menu.c b/src/modules/fileman/e_mod_menu.c index e1c3a0290..43bb1368a 100644 --- a/src/modules/fileman/e_mod_menu.c +++ b/src/modules/fileman/e_mod_menu.c @@ -300,7 +300,7 @@ _e_mod_menu_generate(void *data __UNUSED__, E_Menu *m) Eina_Bool need_separator; Eina_Bool volumes_visible = 0; - if (m->items) return; + if (eina_list_count(m->items) > 2) return; /* go to parent and separator */ e_object_free_attach_func_set(E_OBJECT(m), _e_mod_menu_free); /* Home */ @@ -370,7 +370,8 @@ _e_mod_menu_generate(void *data __UNUSED__, E_Menu *m) e_menu_pre_activate_callback_set(m, NULL, NULL); } -void +/* returns submenu so we can add Go to Parent */ +E_Menu * e_mod_menu_add(E_Menu *m) { #ifdef ENABLE_FILES @@ -384,7 +385,9 @@ e_mod_menu_add(E_Menu *m) e_menu_item_submenu_set(mi, sub); e_object_unref(E_OBJECT(sub)); //allow deletion whenever main menu deletes e_menu_pre_activate_callback_set(sub, _e_mod_menu_generate, NULL); + return sub; #else (void)m; + return NULL; #endif }