discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7f8f136a2a9c4ada485e6194946163247fd7c614
commit 7f8f136a2a9c4ada485e6194946163247fd7c614 Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Wed Aug 19 14:38:57 2015 -0400 redo fileman menus to only scan the first 100 items found this was meant to be a quick way to navigate directories, not a fully operational filemanager in a menu fix T2462 --- src/modules/fileman/e_mod_menu.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/modules/fileman/e_mod_menu.c b/src/modules/fileman/e_mod_menu.c index 088a39f..782c8b8 100644 --- a/src/modules/fileman/e_mod_menu.c +++ b/src/modules/fileman/e_mod_menu.c @@ -104,9 +104,19 @@ _e_mod_menu_cleanup_cb(void *obj) } static Eina_Bool -_e_mod_menu_populate_filter(void *data __UNUSED__, Eio_File *handler __UNUSED__, const Eina_File_Direct_Info *info) +_e_mod_menu_populate_filter(void *data EINA_UNUSED, Eio_File *handler, const Eina_File_Direct_Info *info) { struct stat st; + long count; + + count = (long)eio_file_associate_find(handler, "count"); + if (count > 100) + { + eio_file_cancel(handler); + return EINA_FALSE; + } + count++; + eio_file_associate_add(handler, "count", (void*)count, NULL); /* don't show .dotfiles */ if (fileman_config->view.menu_shows_files) return (info->path[info->name_start] != '.'); @@ -214,13 +224,6 @@ _e_mod_menu_populate_item(void *data, Eio_File *handler __UNUSED__, const Eina_F e_menu_item_callback_set(mi, _e_mod_menu_populate_cb, dev); } -static void -_e_mod_menu_populate_err(void *data, Eio_File *handler __UNUSED__, int error __UNUSED__) -{ - if (!e_object_unref(data)) return; - e_menu_thaw(data); -} - static int _e_mod_menu_populate_sort(E_Menu_Item *a, E_Menu_Item *b) { @@ -253,7 +256,13 @@ _e_mod_menu_populate_done(void *data, Eio_File *handler __UNUSED__) } static void -_e_mod_menu_populate(void *d, E_Menu *m __UNUSED__, E_Menu_Item *mi) +_e_mod_menu_populate_err(void *data, Eio_File *handler, int error EINA_UNUSED) +{ + _e_mod_menu_populate_done(data, handler); +} + +static void +_e_mod_menu_populate(void *d, E_Menu *m EINA_UNUSED, E_Menu_Item *mi) { E_Menu *subm; const char *dev, *path, *rp; --