Enlightenment CVS committal Author : englebass Project : e_modules Module : mem
Dir : e_modules/mem Modified Files: e_mod_main.c e_mod_main.h Log Message: Revert gadcon menu change. =================================================================== RCS file: /cvs/e/e_modules/mem/e_mod_main.c,v retrieving revision 1.49 retrieving revision 1.50 diff -u -3 -r1.49 -r1.50 --- e_mod_main.c 25 Nov 2007 05:37:36 -0000 1.49 +++ e_mod_main.c 2 Dec 2007 16:23:27 -0000 1.50 @@ -36,6 +36,7 @@ static void _mem_cb_mouse_out (void *data, Evas * e, Evas_Object * obj, void *event_info); static void _mem_menu_cb_configure (void *data, E_Menu * m, E_Menu_Item * mi); +static void _mem_menu_cb_post (void *data, E_Menu * m); static Config_Item *_mem_config_item_get (const char *id); static Mem *_mem_new (Evas * evas); static void _mem_free (Mem * mem); @@ -136,7 +137,8 @@ ecore_timer_del (inst->check_timer); mem_config->instances = evas_list_remove (mem_config->instances, inst); _mem_free (inst->mem); - E_FREE(inst); + free (inst); + inst = NULL; } static void @@ -147,13 +149,15 @@ inst = data; ev = event_info; - if ((ev->button == 3) && (!inst->gcc->menu)) + if ((ev->button == 3) && (!mem_config->menu)) { E_Menu *mn; E_Menu_Item *mi; int x, y, w, h; mn = e_menu_new (); + e_menu_post_deactivate_callback_set (mn, _mem_menu_cb_post, inst); + mem_config->menu = mn; mi = e_menu_item_new (mn); e_menu_item_label_set (mi, D_ ("Configuration")); @@ -169,13 +173,22 @@ e_util_zone_current_get (e_manager_current_get ()), x + ev->output.x, y + ev->output.y, 1, 1, - E_MENU_POP_DIRECTION_AUTO, ev->timestamp); + E_MENU_POP_DIRECTION_DOWN, ev->timestamp); evas_event_feed_mouse_up (inst->gcc->gadcon->evas, ev->button, EVAS_BUTTON_NONE, ev->timestamp, NULL); } } static void +_mem_menu_cb_post (void *data, E_Menu * m) +{ + if (!mem_config->menu) + return; + e_object_del (E_OBJECT (mem_config->menu)); + mem_config->menu = NULL; +} + +static void _mem_menu_cb_configure (void *data, E_Menu * m, E_Menu_Item * mi) { Instance *inst; @@ -322,6 +335,12 @@ if (mem_config->config_dialog) e_object_del (E_OBJECT (mem_config->config_dialog)); + if (mem_config->menu) + { + e_menu_post_deactivate_callback_set (mem_config->menu, NULL, NULL); + e_object_del (E_OBJECT (mem_config->menu)); + mem_config->menu = NULL; + } while (mem_config->items) { Config_Item *ci; @@ -331,9 +350,11 @@ evas_list_remove_list (mem_config->items, mem_config->items); if (ci->id) evas_stringshare_del (ci->id); - E_FREE(ci); + free (ci); + ci = NULL; } - E_FREE(mem_config); + free (mem_config); + mem_config = NULL; E_CONFIG_DD_FREE (conf_item_edd); E_CONFIG_DD_FREE (conf_edd); return 1; @@ -369,7 +390,8 @@ _mem_free (Mem * m) { evas_object_del (m->mem_obj); - E_FREE(m); + free (m); + m = NULL; } static void =================================================================== RCS file: /cvs/e/e_modules/mem/e_mod_main.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- e_mod_main.h 25 Nov 2007 05:37:36 -0000 1.15 +++ e_mod_main.h 2 Dec 2007 16:23:27 -0000 1.16 @@ -10,6 +10,7 @@ { E_Module *module; E_Config_Dialog *config_dialog; + E_Menu *menu; Evas_List *instances; Evas_List *items; }; ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs