Enlightenment CVS committal Author : devilhorns Project : e_modules Module : mail
Dir : e_modules/mail Modified Files: e_mod_main.c Log Message: Make event handlers be per instance. This fixes a problem on shutdown when trying to delete the event handlers. =================================================================== RCS file: /cvs/e/e_modules/mail/e_mod_main.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- e_mod_main.c 10 Jun 2006 12:35:33 -0000 1.17 +++ e_mod_main.c 10 Jun 2006 14:12:26 -0000 1.18 @@ -47,6 +47,10 @@ Mail *mail; Ecore_Timer *check_timer; Evas_List *mboxes; + + Ecore_Event_Handler *add_handler; + Ecore_Event_Handler *del_handler; + Ecore_Event_Handler *data_handler; }; struct _Mail @@ -104,10 +108,6 @@ static E_Config_DD *conf_item_edd = NULL; static E_Config_DD *conf_box_edd = NULL; -static Ecore_Event_Handler *add_handler; -static Ecore_Event_Handler *del_handler; -static Ecore_Event_Handler *data_handler; - Config *mail_config = NULL; static const E_Gadcon_Client_Class _gc_class = @@ -152,12 +152,12 @@ mail_config->instances = evas_list_append(mail_config->instances, inst); - if (!add_handler) - add_handler = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_ADD, _mail_server_add, inst); - if (!del_handler) - del_handler = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DEL, _mail_server_del, inst); - if (!data_handler) - data_handler = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DATA, _mail_server_data, inst); + if (!inst->add_handler) + inst->add_handler = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_ADD, _mail_server_add, inst); + if (!inst->del_handler) + inst->del_handler = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DEL, _mail_server_del, inst); + if (!inst->data_handler) + inst->data_handler = ecore_event_handler_add(ECORE_CON_EVENT_SERVER_DATA, _mail_server_data, inst); if (!ci->boxes) return gcc; @@ -193,12 +193,12 @@ _gc_shutdown(E_Gadcon_Client *gcc) { Instance *inst; - - if (add_handler) ecore_event_handler_del(add_handler); - if (data_handler) ecore_event_handler_del(data_handler); - if (del_handler) ecore_event_handler_del(del_handler); inst = gcc->data; + + if (inst->add_handler) ecore_event_handler_del(inst->add_handler); + if (inst->data_handler) ecore_event_handler_del(inst->data_handler); + if (inst->del_handler) ecore_event_handler_del(inst->del_handler); if (inst->check_timer) ecore_timer_del(inst->check_timer); while (inst->mboxes) _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs