Navigate->Current Directory now first item in menu, also shows items for clicked...
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Thu, 6 Dec 2012 09:47:06 +0000 (09:47 +0000)
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Thu, 6 Dec 2012 09:47:06 +0000 (09:47 +0000)
ticket #1929

SVN revision: 80329

src/modules/fileman/e_fwin.c
src/modules/fileman/e_mod_menu.c

index 0f5443c..5978e13 100644 (file)
@@ -2078,20 +2078,23 @@ static void
 _e_fwin_cb_menu_extend_start(void *data,
                              Evas_Object *obj,
                              E_Menu *m,
-                             E_Fm2_Icon_Info *info __UNUSED__)
+                             E_Fm2_Icon_Info *info)
 {
    E_Menu_Item *mi = NULL;
    E_Fwin_Page *page;
    E_Menu *subm;
    Eina_List *selected = NULL;
    Eina_Bool set = EINA_FALSE;
+   char buf[PATH_MAX];
 
    page = data;
 
    selected = e_fm2_selected_list_get(page->fm_obj);
 
 #ifdef ENABLE_FILES
-   subm = e_mod_menu_add(m, e_fm2_real_path_get(page->fm_obj));
+   if (info && info->file)
+     snprintf(buf, sizeof(buf), "%s/%s", e_fm2_real_path_get(page->fm_obj), info->file);
+   subm = e_mod_menu_add(m, (info && info->file) ? buf : e_fm2_real_path_get(page->fm_obj));
 
    if (((!page->fwin->zone) || fileman_config->view.desktop_navigation) && e_fm2_has_parent_get(obj))
      {
index 10d049f..66ca426 100644 (file)
@@ -314,7 +314,7 @@ _e_mod_menu_generate(void *data, E_Menu *m)
 
    if (path)
      {
-        mi = e_menu_item_new(m);
+        mi = e_menu_item_new_relative(m, NULL);
         e_menu_item_label_set(mi, _("Current Directory"));
         e_util_menu_item_theme_icon_set(mi, "folder");
         e_menu_item_submenu_pre_callback_set(mi, _e_mod_menu_populate, eina_stringshare_ref(path));
@@ -398,7 +398,7 @@ e_mod_menu_add(E_Menu *m, const char *path)
    sub = e_menu_new();
    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, (void*)eina_stringshare_ref(path));
+   e_menu_pre_activate_callback_set(sub, _e_mod_menu_generate, (void*)eina_stringshare_add(path));
    return sub;
 #else
    (void)m;