aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2012-08-24 14:19:55 +0000
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>2012-08-24 14:19:55 +0000
commit028e9e0380e6c1d5adb9859cce3ce38b30da08cc (patch)
tree0c3ea797b35b6f72ba075441be7d8e33765948c2 /src/modules
parentf1c170da5ab56072ad58d7254c25e0b56b361e96 (diff)
downloadenlightenment-028e9e0380e6c1d5adb9859cce3ce38b30da08cc.tar.gz
enlightenment-028e9e0380e6c1d5adb9859cce3ce38b30da08cc.tar.xz
enlightenment-028e9e0380e6c1d5adb9859cce3ce38b30da08cc.zip
fix dialog cleanups to work properly
SVN revision: 75665
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/conf_edgebindings/e_int_config_edgebindings.c12
-rw-r--r--src/modules/fileman/e_int_config_mime_edit.c12
-rw-r--r--src/modules/mixer/e_mod_main.c3
-rw-r--r--src/modules/shot/e_mod_main.c7
4 files changed, 32 insertions, 2 deletions
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
@@ -847,6 +847,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)
{
Evas_Object *o, *obg, *os;
@@ -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
@@ -223,6 +223,12 @@ _file_select_cancel_cb(void *data __UNUSED__, E_Dialog *dia)
}
static void
+_file_select_del_cb(void *d __UNUSED__)
+{
+ fsel_dia = NULL;
+}
+
+static void
_win_save_cb(void *data __UNUSED__, void *data2 __UNUSED__)
{
E_Dialog *dia;
@@ -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);