Enlightenment CVS committal Author : sebastid Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_int_menus.c Log Message: Don't call ecore_main_loop_quit in a callback, delay. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_menus.c,v retrieving revision 1.84 retrieving revision 1.85 diff -u -3 -r1.84 -r1.85 --- e_int_menus.c 6 Aug 2005 05:35:34 -0000 1.84 +++ e_int_menus.c 22 Aug 2005 14:51:36 -0000 1.85 @@ -19,6 +19,8 @@ }; /* local subsystem functions */ +static void _e_int_menus_quit (void); +static void _e_int_menus_quit_cb (void *data); static void _e_int_menus_main_del_hook (void *obj); static void _e_int_menus_main_about (void *data, E_Menu *m, E_Menu_Item *mi); static void _e_int_menus_main_run (void *data, E_Menu *m, E_Menu_Item*mi); @@ -47,6 +49,9 @@ static void _e_int_menus_lost_clients_free_hook (void *obj); static void _e_int_menus_lost_clients_item_cb (void *data, E_Menu *m, E_Menu_Item *mi); +/* local subsystem globals */ +static Ecore_Job *_e_int_menus_quit_job = NULL; + /* externally accessible functions */ E_Menu * e_int_menus_main_new(void) @@ -247,6 +252,23 @@ /* local subsystem functions */ static void +_e_int_menus_quit(void) +{ + if (_e_int_menus_quit_job) + { + ecore_job_del(_e_int_menus_quit_job); + _e_int_menus_quit_job = NULL; + } + _e_int_menus_quit_job = ecore_job_add(_e_int_menus_quit_cb, NULL); +} + +static void +_e_int_menus_quit_cb(void *data) +{ + ecore_main_loop_quit(); +} + +static void _e_int_menus_main_del_hook(void *obj) { Main_Data *dat; @@ -294,13 +316,13 @@ _e_int_menus_main_restart(void *data, E_Menu *m, E_Menu_Item *mi) { restart = 1; - ecore_main_loop_quit(); + _e_int_menus_quit(); } static void _e_int_menus_main_exit(void *data, E_Menu *m, E_Menu_Item *mi) { - if (!e_util_immortal_check()) ecore_main_loop_quit(); + if (!e_util_immortal_check()) _e_int_menus_quit(); } static void @@ -763,7 +785,7 @@ e_config_save_queue(); restart = 1; - ecore_main_loop_quit(); + _e_int_menus_quit(); } static void ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs