diff --git a/src/e_mod_main.c b/src/e_mod_main.c index 8b54a9a..7bbf23c 100644 --- a/src/e_mod_main.c +++ b/src/e_mod_main.c @@ -182,6 +182,20 @@ e_modapi_save(E_Module *m) return 1; } +void +places_popups_close(void) +{ + Eina_List *l; + Instance *inst; + + EINA_LIST_FOREACH(instances, l, inst) + if (inst->popup) + { + e_object_del(E_OBJECT(inst->popup)); + inst->popup = NULL; + } +} + void places_menu_augmentation(void) { diff --git a/src/e_mod_main.h b/src/e_mod_main.h index a5fac16..62132d6 100644 --- a/src/e_mod_main.h +++ b/src/e_mod_main.h @@ -71,6 +71,7 @@ EAPI int e_modapi_save(E_Module *m); E_Config_Dialog *e_int_config_places_module(E_Container *con, const char *params); void places_menu_augmentation(void); +void places_popups_close(void); extern Config *places_conf; extern Eina_List *instances; diff --git a/src/e_mod_places.c b/src/e_mod_places.c index f3cbec2..1b6ee54 100644 --- a/src/e_mod_places.c +++ b/src/e_mod_places.c @@ -615,12 +615,6 @@ _places_run_fm_external(const char *fm, const char *directory) static void _places_run_fm(const char *directory) { - // TODO close the popup if any...but I miss inst here :/ - // if (!m && inst->popup && places_conf->autoclose_popup) - // { - // e_object_del(E_OBJECT(inst->popup)); - // } - if (places_conf->fm && places_conf->fm[0]) { _places_run_fm_external(places_conf->fm, directory); @@ -638,6 +632,9 @@ _places_run_fm(const char *directory) "Please choose a custom file manager in
" "the gadget configuration.")); } + + if (places_conf->autoclose_popup) + places_popups_close(); } static void