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

Reply via email to