Enlightenment CVS committal Author : englebass Project : e_modules Module : screenshot
Dir : e_modules/screenshot Modified Files: e_mod_main.c e_mod_main.h Log Message: Revert gadcon menu change. =================================================================== RCS file: /cvs/e/e_modules/screenshot/e_mod_main.c,v retrieving revision 1.79 retrieving revision 1.80 diff -u -3 -r1.79 -r1.80 --- e_mod_main.c 25 Nov 2007 04:55:52 -0000 1.79 +++ e_mod_main.c 2 Dec 2007 16:33:40 -0000 1.80 @@ -45,6 +45,7 @@ static void _ss_cb_mouse_down (void *data, Evas * e, Evas_Object * obj, void *event_info); static void _ss_menu_cb_configure (void *data, E_Menu * m, E_Menu_Item * mi); +static void _ss_menu_cb_post (void *data, E_Menu * m); static Config_Item *_ss_config_item_get (const char *id); static Screenshot *_ss_new (Evas * evas); static void _ss_free (Screenshot * ss); @@ -161,13 +162,15 @@ inst = data; ev = event_info; - if ((ev->button == 3) && (!inst->gcc->menu)) + if ((ev->button == 3) && (!ss_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, _ss_menu_cb_post, inst); + ss_config->menu = mn; mi = e_menu_item_new (mn); e_menu_item_label_set (mi, D_ ("Configuration")); @@ -183,7 +186,7 @@ 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); } @@ -192,6 +195,15 @@ } static void +_ss_menu_cb_post (void *data, E_Menu * m) +{ + if (!ss_config->menu) + return; + e_object_del (E_OBJECT (ss_config->menu)); + ss_config->menu = NULL; +} + +static void _ss_menu_cb_configure (void *data, E_Menu * m, E_Menu_Item * mi) { Instance *inst; @@ -380,6 +392,12 @@ if (ss_config->config_dialog) e_object_del (E_OBJECT (ss_config->config_dialog)); + if (ss_config->menu) + { + e_menu_post_deactivate_callback_set (ss_config->menu, NULL, NULL); + e_object_del (E_OBJECT (ss_config->menu)); + ss_config->menu = NULL; + } while (ss_config->items) { @@ -396,9 +414,11 @@ evas_stringshare_del (ci->app); ss_config->items = evas_list_remove_list (ss_config->items, ss_config->items); - E_FREE(ci); + free (ci); + ci = NULL; } - E_FREE(ss_config); + free (ss_config); + ss_config = NULL; E_CONFIG_DD_FREE (conf_item_edd); E_CONFIG_DD_FREE (conf_edd); return 1; =================================================================== RCS file: /cvs/e/e_modules/screenshot/e_mod_main.h,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- e_mod_main.h 25 Nov 2007 04:55:52 -0000 1.22 +++ e_mod_main.h 2 Dec 2007 16:33:40 -0000 1.23 @@ -10,6 +10,7 @@ { E_Module *module; E_Config_Dialog *config_dialog; + E_Menu *menu; Evas_List *instances; Evas_List *items; Ecore_Event_Handler *exe_exit_handler; ------------------------------------------------------------------------- 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