Enlightenment CVS committal Author : devilhorns Project : e_modules Module : efm_path
Dir : e_modules/efm_path/src Modified Files: e_mod_main.c Log Message: Clean up edc a bit. Add an event rectangle to the module so that it's easier to get the menu to show. Do a little more cleanup on shutdown. =================================================================== RCS file: /cvs/e/e_modules/efm_path/src/e_mod_main.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_mod_main.c 11 Nov 2007 19:25:19 -0000 1.1 +++ e_mod_main.c 12 Nov 2007 02:36:32 -0000 1.2 @@ -5,7 +5,7 @@ struct _Instance { E_Gadcon_Client *gcc; - Evas_Object *o_entry, *o_base, *o_loc; + Evas_Object *o_entry, *o_base, *o_loc, *o_event; E_Menu *menu; E_Toolbar *tbar; char *path; @@ -72,7 +72,6 @@ evas_object_show(inst->o_loc); inst->o_entry = e_widget_entry_add(gc->evas, &(inst->path), NULL, NULL, NULL); - e_widget_can_focus_set(inst->o_entry, 0); edje_object_part_swallow(inst->o_base, "e.swallow.entry", inst->o_entry); evas_object_show(inst->o_entry); @@ -94,10 +93,16 @@ evas_object_smart_callback_add(inst->o_base, "selection_change", _cb_sel_changed, inst); + inst->o_event = evas_object_rectangle_add(gc->evas); + evas_object_color_set(inst->o_event, 255, 0, 0, 142); + evas_object_repeat_events_set(inst->o_event, 1); + evas_object_event_callback_add(inst->o_event, EVAS_CALLBACK_MOUSE_DOWN, + _cb_mouse_down, inst); + evas_object_show(inst->o_event); + inst->gcc = e_gadcon_client_new(gc, name, id, style, inst->o_base); inst->gcc->data = inst; - e_gadcon_client_resizable_set(inst->gcc, 1); instances = evas_list_append(instances, inst); return inst->gcc; } @@ -110,6 +115,17 @@ inst = gcc->data; if (!inst) return; instances = evas_list_remove(instances, inst); + if (inst->menu) + { + e_menu_post_deactivate_callback_set(inst->menu, NULL, NULL); + e_object_del(E_OBJECT(inst->menu)); + inst->menu = NULL; + } + + evas_object_event_callback_del(inst->o_event, EVAS_CALLBACK_MOUSE_DOWN, _cb_mouse_down); + evas_object_event_callback_del(inst->o_base, EVAS_CALLBACK_MOUSE_DOWN, _cb_mouse_down); + + if (inst->o_event) evas_object_del(inst->o_event); if (inst->o_loc) evas_object_del(inst->o_loc); if (inst->o_entry) evas_object_del(inst->o_entry); if (inst->o_base) evas_object_del(inst->o_base); @@ -325,7 +341,9 @@ ecore_x_pointer_xy_get(zone->container->win, &x, &y); e_menu_activate_mouse(inst->menu, zone, x, y, 1, 1, E_MENU_POP_DIRECTION_DOWN, ev->timestamp); - e_util_evas_fake_mouse_up_later(e, ev->button); + evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button, + EVAS_BUTTON_NONE, ev->timestamp, NULL); +// e_util_evas_fake_mouse_up_later(e, ev->button); } static void ------------------------------------------------------------------------- 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