diff --git a/src/bin/e_apps.c b/src/bin/e_apps.c index fca3a9190..c342eb990 100644 --- a/src/bin/e_apps.c +++ b/src/bin/e_apps.c @@ -177,7 +177,13 @@ _e_apps_hash_idler_cb(void *data) * since we last looked at it, so iterate through them again. Doesn't seem to * slow the process down much. */ + /* FIXME: on a slow enough system this will never complete. the hash walk + * may abort before scanning anything t all (entries walked in hash all + * already filled but further entries later in the hash walk will never + * be reashed as timeout happens before getting there) + */ evas_hash_foreach(_e_apps_every_app, _e_apps_hash_idler_cb_init, idler); + printf("\nIDLE APP FILLING PASS %3.3f\n", ecore_time_get() - idler->pass); if (idler->all_done) { printf("\nIDLE APP FILLING SCAN %3.3f\n", ecore_time_get() - idler->begin); @@ -196,6 +202,7 @@ _e_apps_hash_idler_cb_init(Evas_Hash *hash, const char *key, void *data, void *f { E_App *a; struct _E_App_Hash_Idler *idler; + double t; a = data; idler = fdata; @@ -210,6 +217,8 @@ _e_apps_hash_idler_cb_init(Evas_Hash *hash, const char *key, void *data, void *f a->idle_fill = 1; if (stat(a->path, &st) >= 0) a->mtime = st.st_mtime; + /* FIXME: the main problem is this call - when it does get run it can + * sometimes take 0.2 or 0.3 seconds, causing much jerkiness */ e_app_fields_fill(a, a->path); } #if IDLE_ICONS @@ -224,7 +233,8 @@ _e_apps_hash_idler_cb_init(Evas_Hash *hash, const char *key, void *data, void *f /* FIXME: This time should be since the beginnig of all idler processing, * and the time limit should be tied to the frame rate. */ - if ((ecore_time_get() - idler->pass) < 0.07) return 1; + t = ecore_time_get() - idler->pass; + if (t < 0.02) return 1; idler->all_done = 0; return 0; } diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index d835990bf..f03905b2e 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -2805,7 +2805,9 @@ _e_fm2_cb_dnd_drop(void *data, const char *type, void *event) free(d); } } - refresh = 1; /* refresh src fm */ + /* FIXME: disable refresh - modify icons in-place */ + refresh = 1; /* refresh src fm */ + /* FIXME: disable refresh - modify icons in-place */ e_fm2_refresh(sd->obj); /* refresh dst fm */ } else if (sd->drop_icon) /* inot or before/after an icon */ @@ -2882,7 +2884,9 @@ _e_fm2_cb_dnd_drop(void *data, const char *type, void *event) ecore_file_mv(ll->data, buf); } } - refresh = 1; /* refresh src fm */ + /* FIXME: disable refresh - modify icons in-place */ + refresh = 1; /* refresh src fm */ + /* FIXME: disable refresh - modify icons in-place */ e_fm2_refresh(sd->obj); /* refresh dst fm */ } else @@ -2939,6 +2943,7 @@ _e_fm2_cb_dnd_drop(void *data, const char *type, void *event) free(d); } } + /* FIXME: disable refresh - modify icons in-place */ e_fm2_refresh(sd->obj); /* refresh dst fm */ } else /* no order file */ @@ -2957,7 +2962,9 @@ _e_fm2_cb_dnd_drop(void *data, const char *type, void *event) else ecore_file_mv(ll->data, buf); } - refresh = 1; /* refresh src fm */ + /* FIXME: disable refresh - modify icons in-place */ + refresh = 1; /* refresh src fm */ + /* FIXME: disable refresh - modify icons in-place */ e_fm2_refresh(sd->obj); /* refresh dst fm */ } } @@ -2965,6 +2972,7 @@ _e_fm2_cb_dnd_drop(void *data, const char *type, void *event) } _e_fm2_dnd_drop_hide(sd->obj); _e_fm2_dnd_drop_all_hide(sd->obj); + /* FIXME: disable refresh */ for (l = _e_fm2_list; l; l = l->next) _e_fm2_dnd_finish(l->data, refresh); } @@ -4388,6 +4396,7 @@ _e_fm2_new_directory_yes_cb(char *text, void *data) fclose(f); } } + /* FIXME: disable refresh - modify icons in-place */ if (sd->refresh_job) ecore_job_del(sd->refresh_job); sd->refresh_job = ecore_job_add(_e_fm2_refresh_job_cb, sd->obj); } @@ -4487,6 +4496,7 @@ _e_fm2_file_rename_yes_cb(char *text, void *data) } if (ic->sd->order_file) _e_fm2_order_file_rewrite(ic->sd->obj); + /* FIXME: disable refresh - modify icons in-place */ if (ic->sd->refresh_job) ecore_job_del(ic->sd->refresh_job); ic->sd->refresh_job = ecore_job_add(_e_fm2_refresh_job_cb, ic->sd->obj); } @@ -4643,6 +4653,7 @@ _e_fm2_file_delete_yes_cb(void *data, E_Dialog *dialog) } if (ic->sd->order_file) _e_fm2_order_file_rewrite(ic->sd->obj); + /* FIXME: disable refresh - modify icons in-place */ if (ic->sd->refresh_job) ecore_job_del(ic->sd->refresh_job); ic->sd->refresh_job = ecore_job_add(_e_fm2_refresh_job_cb, ic->sd->obj);