diff --git a/src/modules/conf_edgebindings/e_int_config_edgebindings.c b/src/modules/conf_edgebindings/e_int_config_edgebindings.c index bfd28676f..eb9419a8b 100644 --- a/src/modules/conf_edgebindings/e_int_config_edgebindings.c +++ b/src/modules/conf_edgebindings/e_int_config_edgebindings.c @@ -846,6 +846,16 @@ _edge_binding_sort_cb(const void *d1, const void *d2) } /**************** grab window *******/ +static void +_dia_del(void *data) +{ + E_Config_Dialog_Data *cfdata; + + cfdata = e_object_data_get(data); + if (!cfdata) return; + cfdata->locals.dia = NULL; +} + static void _edge_grab_wnd_show(E_Config_Dialog_Data *cfdata) { @@ -868,6 +878,8 @@ _edge_grab_wnd_show(E_Config_Dialog_Data *cfdata) e_dialog_icon_set(cfdata->locals.dia, "enlightenment/edges", 48); e_dialog_button_add(cfdata->locals.dia, _("Apply"), NULL, _edge_grab_wnd_cb_apply, cfdata); e_dialog_button_add(cfdata->locals.dia, _("Close"), NULL, _edge_grab_wnd_cb_close, cfdata); + e_object_data_set(E_OBJECT(cfdata->locals.dia), cfdata); + e_object_del_attach_func_set(E_OBJECT(cfdata->locals.dia), _dia_del); e_win_centered_set(cfdata->locals.dia->win, 1); evas = e_win_evas_get(cfdata->locals.dia->win); diff --git a/src/modules/fileman/e_int_config_mime_edit.c b/src/modules/fileman/e_int_config_mime_edit.c index 572fe7930..bda57f4aa 100644 --- a/src/modules/fileman/e_int_config_mime_edit.c +++ b/src/modules/fileman/e_int_config_mime_edit.c @@ -268,6 +268,17 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) return 1; } +static void +_dia_del(void *data) +{ + E_Dialog *dia = data; + E_Config_Dialog_Data *cfdata; + + cfdata = dia->data; + if (!cfdata) return; + cfdata->gui.fsel = NULL; +} + static void _cb_icon_sel(void *data, void *data2) { @@ -292,6 +303,7 @@ _cb_icon_sel(void *data, void *data2) e_dialog_title_set(dia, _("Select an image")); dia->data = cfdata; + e_object_del_attach_func_set(E_OBJECT(dia), _dia_del); o = e_widget_fsel_add(dia->win->evas, "~/", "/", NULL, NULL, _cb_fsel_sel, cfdata, NULL, cfdata, 1); diff --git a/src/modules/mixer/e_mod_main.c b/src/modules/mixer/e_mod_main.c index d8f7dd025..c3b27db78 100644 --- a/src/modules/mixer/e_mod_main.c +++ b/src/modules/mixer/e_mod_main.c @@ -636,8 +636,7 @@ _mixer_popup_cb_mixer(void *data, void *data2 __UNUSED__) } con = e_container_current_get(e_manager_current_get()); - ctxt->mixer_dialog = e_mixer_app_dialog_new( - con, _mixer_app_cb_del, ctxt); + ctxt->mixer_dialog = e_mixer_app_dialog_new(con, _mixer_app_cb_del, ctxt); _mixer_app_select_current(ctxt->mixer_dialog, inst); } diff --git a/src/modules/shot/e_mod_main.c b/src/modules/shot/e_mod_main.c index fa2c55836..d0629a4a2 100644 --- a/src/modules/shot/e_mod_main.c +++ b/src/modules/shot/e_mod_main.c @@ -222,6 +222,12 @@ _file_select_cancel_cb(void *data __UNUSED__, E_Dialog *dia) fsel_dia = NULL; } +static void +_file_select_del_cb(void *d __UNUSED__) +{ + fsel_dia = NULL; +} + static void _win_save_cb(void *data __UNUSED__, void *data2 __UNUSED__) { @@ -246,6 +252,7 @@ _win_save_cb(void *data __UNUSED__, void *data2 __UNUSED__) NULL, NULL, NULL, NULL, NULL, 1); + e_object_del_attach_func_set(E_OBJECT(dia), _file_select_del_cb); e_widget_fsel_window_object_set(o, E_OBJECT(dia->win)); o_fsel = o; evas_object_show(o);