From be22b0f823a5d30923e7b259befb9de595d1d1ac Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Sun, 2 Dec 2007 16:41:11 +0000 Subject: [PATCH] Revert gadcon menu change. SVN revision: 32936 --- e_mod_main.c | 21 +++++++++++++++++++-- e_mod_main.h | 1 + 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/e_mod_main.c b/e_mod_main.c index c4fcdd6..21e0011 100644 --- a/e_mod_main.c +++ b/e_mod_main.c @@ -221,7 +221,7 @@ _mail_cb_mouse_down (void *data, Evas * e, Evas_Object * obj, if (!inst) return; - if ((ev->button == 3) && (!inst->gcc->menu)) + if ((ev->button == 3) && (!mail_config->menu)) { E_Menu *mn, *sn; E_Menu_Item *mi; @@ -229,6 +229,8 @@ _mail_cb_mouse_down (void *data, Evas * e, Evas_Object * obj, char buf[1024]; mn = e_menu_new (); + e_menu_post_deactivate_callback_set (mn, _mail_menu_cb_post, inst); + mail_config->menu = mn; if ((inst->ci->boxes) && (evas_list_count (inst->ci->boxes) > 0)) { @@ -274,7 +276,7 @@ _mail_cb_mouse_down (void *data, Evas * e, Evas_Object * obj, 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); } @@ -342,6 +344,15 @@ _mail_cb_mouse_out (void *data, Evas * e, Evas_Object * obj, void *event_info) } } +static void +_mail_menu_cb_post (void *data, E_Menu * m) +{ + if (!mail_config->menu) + return; + e_object_del (E_OBJECT (mail_config->menu)); + mail_config->menu = NULL; +} + static void _mail_menu_cb_configure (void *data, E_Menu * m, E_Menu_Item * mi) { @@ -484,6 +495,12 @@ e_modapi_shutdown (E_Module * m) if (mail_config->config_dialog) e_object_del (E_OBJECT (mail_config->config_dialog)); + if (mail_config->menu) + { + e_menu_post_deactivate_callback_set (mail_config->menu, NULL, NULL); + e_object_del (E_OBJECT (mail_config->menu)); + mail_config->menu = NULL; + } while (mail_config->items) { Config_Item *ci; diff --git a/e_mod_main.h b/e_mod_main.h index 90cb47a..1e7d561 100644 --- a/e_mod_main.h +++ b/e_mod_main.h @@ -43,6 +43,7 @@ struct _Config { E_Module *module; E_Config_Dialog *config_dialog; + E_Menu *menu; Evas_List *instances; Evas_List *items; };