diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index 7cd888642..fd2c59a49 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -252,6 +252,7 @@ static E_Fm2_Icon *_e_fm2_icon_next_find(Evas_Object *obj, int next, int match_f static void _e_fm2_icon_sel_first(Evas_Object *obj); static void _e_fm2_icon_sel_last(Evas_Object *obj); +static void _e_fm2_icon_sel_any(Evas_Object *obj); static void _e_fm2_icon_sel_prev(Evas_Object *obj); static void _e_fm2_icon_sel_next(Evas_Object *obj); static void _e_fm2_icon_sel_down(Evas_Object *obj); @@ -979,6 +980,18 @@ e_fm2_all_unsel(Evas_Object *obj) _e_fm2_icon_desel_any(obj); } +EAPI void +e_fm2_all_sel(Evas_Object *obj) +{ + E_Fm2_Smart_Data *sd; + + sd = evas_object_smart_data_get(obj); + if (!sd) return; // safety + if (!evas_object_type_get(obj)) return; // safety + if (strcmp(evas_object_type_get(obj), "e_fm")) return; // safety + _e_fm2_icon_sel_any(obj); +} + EAPI void e_fm2_custom_theme_set(Evas_Object *obj, const char *path) { @@ -4964,6 +4977,20 @@ _e_fm2_icon_sel_last(Evas_Object *obj) _e_fm2_icon_make_visible(ic); } +static void +_e_fm2_icon_sel_any(Evas_Object *obj) +{ + E_Fm2_Smart_Data *sd; + E_Fm2_Icon *ic; + Eina_List *l; + + sd = evas_object_smart_data_get(obj); + if (!sd) return; + if (!sd->icons) return; + EINA_LIST_FOREACH(sd->icons, l, ic) + if (!ic->selected) _e_fm2_icon_select(ic); +} + static E_Fm2_Icon * _e_fm2_icon_next_find(Evas_Object *obj, int next, int match_func(E_Fm2_Icon *ic, void *data), void *data) { diff --git a/src/bin/e_fm.h b/src/bin/e_fm.h index 1a17e20e2..1bbd7c4b4 100644 --- a/src/bin/e_fm.h +++ b/src/bin/e_fm.h @@ -138,6 +138,7 @@ EAPI void e_fm2_custom_theme_content_set(Evas_Object *obj, cons EAPI void e_fm2_underlay_show(Evas_Object *obj); EAPI void e_fm2_underlay_hide(Evas_Object *obj); EAPI void e_fm2_all_unsel(Evas_Object *obj); +EAPI void e_fm2_all_sel(Evas_Object *obj); EAPI void e_fm2_path_get(Evas_Object *obj, const char **dev, const char **path); EAPI void e_fm2_refresh(Evas_Object *obj); EAPI const char *e_fm2_real_path_get(Evas_Object *obj); diff --git a/src/modules/fileman/e_fwin.c b/src/modules/fileman/e_fwin.c index d8b3057c5..2b46b95cd 100644 --- a/src/modules/fileman/e_fwin.c +++ b/src/modules/fileman/e_fwin.c @@ -935,6 +935,16 @@ _e_fwin_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info) e_fwin_new(con, dev, path); return; } + if (!strcmp(ev->key, "w")) + { + e_object_del(E_OBJECT(fwin)); + return; + } + if (!strcmp(ev->key, "a")) + { + e_fm2_all_sel(fwin->fm_obj); + return; + } } }