Enlightenment CVS committal Author : devilhorns Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_int_config_mime.h e_int_config_mime.c e_int_config_mime_edit.h e_int_config_mime_edit.c Log Message: Be sure to close the mime_edit dialog if the main mime_list dialog closes. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_mime.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_int_config_mime.h 3 Nov 2006 11:56:41 -0000 1.2 +++ e_int_config_mime.h 13 Nov 2006 21:08:54 -0000 1.3 @@ -3,8 +3,8 @@ #ifndef E_INT_CONFIG_MIME_H #define E_INT_CONFIG_MIME_H - EAPI E_Config_Dialog *e_int_config_mime(E_Container *con); +EAPI void e_int_config_mime_edit_done(void *data); #endif #endif =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_mime.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- e_int_config_mime.c 13 Nov 2006 20:29:37 -0000 1.12 +++ e_int_config_mime.c 13 Nov 2006 21:08:54 -0000 1.13 @@ -25,6 +25,7 @@ { Evas_Object *tlist, *list; } gui; + E_Config_Dialog *cfd, *edit_dlg; }; static void *_create_data (E_Config_Dialog *cfd); @@ -60,6 +61,17 @@ return cfd; } +EAPI void +e_int_config_mime_edit_done(void *data) +{ + E_Config_Dialog_Data *cfdata; + + cfdata = data; + if (!cfdata) return; + if (cfdata->edit_dlg) + cfdata->edit_dlg = NULL; +} + static void _fill_data(E_Config_Dialog_Data *cfdata) { @@ -94,6 +106,7 @@ E_Config_Dialog_Data *cfdata; cfdata = E_NEW(E_Config_Dialog_Data, 1); + cfdata->cfd = cfd; _fill_data(cfdata); return cfdata; } @@ -101,6 +114,12 @@ static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) { + if (cfdata->edit_dlg) + { + e_object_del(E_OBJECT(cfdata->edit_dlg)); + cfdata->edit_dlg = NULL; + } + while (types) { Config_Type *t; @@ -432,6 +451,7 @@ Evas_List *l; E_Config_Dialog_Data *cfdata; E_Config_Mime_Icon *mi = NULL; + E_Config_Dialog *edit_dlg; char *m; int found = 0; @@ -455,5 +475,5 @@ mi->mime = evas_stringshare_add(m); } - e_int_config_mime_edit(mi); + cfdata->edit_dlg = e_int_config_mime_edit(mi, cfdata); } =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_mime_edit.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_int_config_mime_edit.h 11 Nov 2006 13:44:51 -0000 1.2 +++ e_int_config_mime_edit.h 13 Nov 2006 21:08:54 -0000 1.3 @@ -3,7 +3,7 @@ #ifndef E_INT_CONFIG_MIME_EDIT_H #define E_INT_CONFIG_MIME_EDIT_H -EAPI E_Config_Dialog *e_int_config_mime_edit(E_Config_Mime_Icon *data); +EAPI E_Config_Dialog *e_int_config_mime_edit(E_Config_Mime_Icon *data, void *data2); #endif #endif =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_mime_edit.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- e_int_config_mime_edit.c 11 Nov 2006 20:02:20 -0000 1.9 +++ e_int_config_mime_edit.c 13 Nov 2006 21:08:54 -0000 1.10 @@ -36,17 +36,24 @@ Evas_Object *icon_wid, *fsel_wid; E_Dialog *fsel; } gui; + E_Config_Mime_Icon *data; + void *data2; }; #define IFDUP(src, dst) if (src) dst = strdup(src); else dst = NULL; #define IFFREE(src) if (src) free(src); src = NULL; EAPI E_Config_Dialog * -e_int_config_mime_edit(E_Config_Mime_Icon *data) +e_int_config_mime_edit(E_Config_Mime_Icon *data, void *data2) { E_Config_Dialog *cfd; E_Config_Dialog_View *v; E_Container *con; + E_Config_Dialog_Data *cfdata; + + cfdata = E_NEW(E_Config_Dialog_Data, 1); + cfdata->data = data; + cfdata->data2 = data2; if (e_config_dialog_find("E", "_config_mime_edit_dialog")) return NULL; @@ -60,18 +67,15 @@ cfd = e_config_dialog_new(con, _("Mime Settings"), "E", "_config_mime_edit_dialog", "enlightenment/e", - 0, v, data); + 0, v, cfdata); return cfd; } static void * _create_data(E_Config_Dialog *cfd) { - E_Config_Dialog_Data *cfdata; - - cfdata = E_NEW(E_Config_Dialog_Data, 1); - _fill_data(cfd, cfdata); - return cfdata; + _fill_data(cfd, cfd->data); + return cfd->data; } static void @@ -79,7 +83,7 @@ { E_Config_Mime_Icon *mi; - mi = (E_Config_Mime_Icon *)cfd->data; + mi = (E_Config_Mime_Icon *)cfdata->data; IFDUP(mi->mime, cfdata->mime); IFDUP(mi->icon, cfdata->icon); @@ -115,6 +119,7 @@ IFFREE(cfdata->file); IFFREE(cfdata->mime); IFFREE(cfdata->icon); + e_int_config_mime_edit_done(cfdata->data2); E_FREE(cfdata); } ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs