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;

-- 


Reply via email to