Enlightenment CVS committal Author : urandom Project : e_modules Module : winselector
Dir : e_modules/winselector Modified Files: e_mod_main.c Log Message: additional precautions, but still causes segfaults sometimes =================================================================== RCS file: /cvs/e/e_modules/winselector/e_mod_main.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- e_mod_main.c 26 Jul 2007 07:48:21 -0000 1.15 +++ e_mod_main.c 2 Sep 2007 14:24:46 -0000 1.16 @@ -102,19 +102,29 @@ return gcc; } - static void +static void _gc_shutdown (E_Gadcon_Client * gcc) { Instance *inst; inst = gcc->data; - if (inst->win_menu) - { - e_menu_post_deactivate_callback_set(inst->win_menu, NULL, NULL); - e_object_del(E_OBJECT(inst->win_menu)); - inst->win_menu = NULL; - } - evas_object_del (inst->o_button); + if (inst->win_menu) + { + e_menu_post_deactivate_callback_set(inst->win_menu, NULL, NULL); + e_object_del(E_OBJECT(inst->win_menu)); + inst->win_menu = NULL; + } + if (inst->bd_icon) + { + edje_object_part_unswallow(inst->o_button, inst->bd_icon); + evas_object_del(inst->bd_icon); + inst->bd_icon = NULL; + } + if (inst->o_button) + { + evas_object_del(inst->o_button); + inst->o_button = NULL; + } free (inst); } @@ -482,6 +492,9 @@ static void _focus_in(E_Border *bd, Instance *inst) { + if (!inst->o_button) + return; + _focus_out(inst); inst->bd_icon = e_border_icon_add(bd, evas_object_evas_get(inst->o_button)); edje_object_signal_emit(inst->o_button, "focus_in", ""); @@ -491,10 +504,16 @@ static void _focus_out(Instance *inst) { - edje_object_signal_emit(inst->o_button, "focus_out", ""); - if (inst->bd_icon) evas_object_del(inst->bd_icon); - inst->bd_icon = NULL; + if (!inst->o_button) + return; + edje_object_signal_emit(inst->o_button, "focus_out", ""); + if (inst->bd_icon) + { + edje_object_part_unswallow(inst->o_button, inst->bd_icon); + evas_object_del(inst->bd_icon); + inst->bd_icon = NULL; + } } static int _win_menu_sort_alpha_cb(void *d1, void *d2) ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs