diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index e34e2e131..1fb30a117 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -3021,6 +3021,8 @@ _e_fm2_file_delete_yes_cb(void *data, E_Dialog *dialog) 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); + + evas_object_smart_callback_call(ic->sd->obj, "files_deleted", NULL); } static void diff --git a/src/bin/e_int_config_wallpaper.c b/src/bin/e_int_config_wallpaper.c index 0417a04f2..01b66f175 100644 --- a/src/bin/e_int_config_wallpaper.c +++ b/src/bin/e_int_config_wallpaper.c @@ -171,7 +171,7 @@ static void _cb_files_selected(void *data, Evas_Object *obj, void *event_info) { E_Config_Dialog_Data *cfdata; - + cfdata = data; } @@ -205,10 +205,48 @@ _cb_files_files_changed(void *data, Evas_Object *obj, void *event_info) else p = cfdata->bg; } + e_fm2_select_set(cfdata->o_fm, p, 1); e_fm2_file_show(cfdata->o_fm, p); } +static void +_cb_files_files_deleted(void *data, Evas_Object *obj, void *event_info) +{ + E_Config_Dialog_Data *cfdata; + Evas_List *sel, *all, *n; + E_Fm2_Icon_Info *ici, *ic; + + cfdata = data; + if (!cfdata->bg) return; + if (!cfdata->o_fm) return; + + all = e_fm2_all_list_get(cfdata->o_fm); + if (!all) return; + sel = e_fm2_selected_list_get(cfdata->o_fm); + if (!sel) return; + + ici = sel->data; + + all = evas_list_find_list(all, ici); + n = evas_list_next(all); + if (!n) + { + n = evas_list_prev(all); + if (!n) return; + } + + ic = n->data; + if (!ic) return; + + e_fm2_select_set(cfdata->o_fm, ic->file, 1); + e_fm2_file_show(cfdata->o_fm, ic->file); + + evas_list_free(n); + + evas_object_smart_callback_call(cfdata->o_fm, "selection_change", cfdata); +} + static void _cb_theme_wallpaper(void *data, Evas_Object *obj, void *event_info) { @@ -421,6 +459,9 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf _cb_files_selected, cfdata); evas_object_smart_callback_add(o, "changed", _cb_files_files_changed, cfdata); + evas_object_smart_callback_add(o, "files_deleted", + _cb_files_files_deleted, cfdata); + e_fm2_path_set(o, path, "/"); of = e_widget_scrollframe_pan_add(evas, o,