Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje
Dir : e17/libs/edje/src/lib Modified Files: edje_callbacks.c edje_load.c edje_private.h edje_util.c Log Message: 1. removed mosue_events 0 on swallows - as this now changes behavior. normalise 2. gustavo's patch. =================================================================== RCS file: /cvs/e/e17/libs/edje/src/lib/edje_callbacks.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- edje_callbacks.c 18 Dec 2006 08:50:25 -0000 1.23 +++ edje_callbacks.c 4 Apr 2007 12:51:51 -0000 1.24 @@ -364,3 +364,57 @@ free(pp); return 0; } + +void +_edje_callbacks_add(Evas_Object *obj, Edje *ed, Edje_Real_Part *rp) +{ + evas_object_event_callback_add(obj, + EVAS_CALLBACK_MOUSE_IN, + _edje_mouse_in_cb, + ed); + evas_object_event_callback_add(obj, + EVAS_CALLBACK_MOUSE_OUT, + _edje_mouse_out_cb, + ed); + evas_object_event_callback_add(obj, + EVAS_CALLBACK_MOUSE_DOWN, + _edje_mouse_down_cb, + ed); + evas_object_event_callback_add(obj, + EVAS_CALLBACK_MOUSE_UP, + _edje_mouse_up_cb, + ed); + evas_object_event_callback_add(obj, + EVAS_CALLBACK_MOUSE_MOVE, + _edje_mouse_move_cb, + ed); + evas_object_event_callback_add(obj, + EVAS_CALLBACK_MOUSE_WHEEL, + _edje_mouse_wheel_cb, + ed); + evas_object_data_set(obj, "real_part", rp); +} + +void +_edje_callbacks_del(Evas_Object *obj) +{ + evas_object_event_callback_del(obj, + EVAS_CALLBACK_MOUSE_IN, + _edje_mouse_in_cb); + evas_object_event_callback_del(obj, + EVAS_CALLBACK_MOUSE_OUT, + _edje_mouse_out_cb); + evas_object_event_callback_del(obj, + EVAS_CALLBACK_MOUSE_DOWN, + _edje_mouse_down_cb); + evas_object_event_callback_del(obj, + EVAS_CALLBACK_MOUSE_UP, + _edje_mouse_up_cb); + evas_object_event_callback_del(obj, + EVAS_CALLBACK_MOUSE_MOVE, + _edje_mouse_move_cb); + evas_object_event_callback_del(obj, + EVAS_CALLBACK_MOUSE_WHEEL, + _edje_mouse_wheel_cb); + evas_object_data_del(obj, "real_part"); +} =================================================================== RCS file: /cvs/e/e17/libs/edje/src/lib/edje_load.c,v retrieving revision 1.98 retrieving revision 1.99 diff -u -3 -r1.98 -r1.99 --- edje_load.c 31 Mar 2007 10:32:48 -0000 1.98 +++ edje_load.c 4 Apr 2007 12:51:51 -0000 1.99 @@ -131,31 +131,7 @@ { if (ep->mouse_events) { - evas_object_event_callback_add(rp->object, - EVAS_CALLBACK_MOUSE_IN, - _edje_mouse_in_cb, - ed); - evas_object_event_callback_add(rp->object, - EVAS_CALLBACK_MOUSE_OUT, - _edje_mouse_out_cb, - ed); - evas_object_event_callback_add(rp->object, - EVAS_CALLBACK_MOUSE_DOWN, - _edje_mouse_down_cb, - ed); - evas_object_event_callback_add(rp->object, - EVAS_CALLBACK_MOUSE_UP, - _edje_mouse_up_cb, - ed); - evas_object_event_callback_add(rp->object, - EVAS_CALLBACK_MOUSE_MOVE, - _edje_mouse_move_cb, - ed); - evas_object_event_callback_add(rp->object, - EVAS_CALLBACK_MOUSE_WHEEL, - _edje_mouse_wheel_cb, - ed); - evas_object_data_set(rp->object, "real_part", rp); + _edje_callbacks_add(rp->object, ed, rp); if (ep->repeat_events) evas_object_repeat_events_set(rp->object, 1); } @@ -537,25 +513,8 @@ ed->parts = evas_list_remove(ed->parts, rp); if (rp->object) { - evas_object_event_callback_del(rp->object, - EVAS_CALLBACK_MOUSE_IN, - _edje_mouse_in_cb); - evas_object_event_callback_del(rp->object, - EVAS_CALLBACK_MOUSE_OUT, - _edje_mouse_out_cb); - evas_object_event_callback_del(rp->object, - EVAS_CALLBACK_MOUSE_DOWN, - _edje_mouse_down_cb); - evas_object_event_callback_del(rp->object, - EVAS_CALLBACK_MOUSE_UP, - _edje_mouse_up_cb); - evas_object_event_callback_del(rp->object, - EVAS_CALLBACK_MOUSE_MOVE, - _edje_mouse_move_cb); - evas_object_event_callback_del(rp->object, - EVAS_CALLBACK_MOUSE_WHEEL, - _edje_mouse_wheel_cb); _edje_text_real_part_on_del(ed, rp); + _edje_callbacks_del(rp->object); evas_object_del(rp->object); } if (rp->swallowed_object) @@ -565,6 +524,8 @@ EVAS_CALLBACK_FREE, _edje_object_part_swallow_free_cb); evas_object_clip_unset(rp->swallowed_object); + if (rp->part->mouse_events) + _edje_callbacks_del(rp->swallowed_object); rp->swallowed_object = NULL; /* I think it would be better swallowed objects dont get deleted */ /* evas_object_del(rp->swallowed_object);*/ =================================================================== RCS file: /cvs/e/e17/libs/edje/src/lib/edje_private.h,v retrieving revision 1.118 retrieving revision 1.119 diff -u -3 -r1.118 -r1.119 --- edje_private.h 30 Mar 2007 23:39:41 -0000 1.118 +++ edje_private.h 4 Apr 2007 12:51:51 -0000 1.119 @@ -912,6 +912,8 @@ void _edje_mouse_wheel_cb(void *data, Evas * e, Evas_Object * obj, void *event_info); int _edje_timer_cb(void *data); int _edje_pending_timer_cb(void *data); +void _edje_callbacks_add(Evas_Object *obj, Edje *ed, Edje_Real_Part *rp); +void _edje_callbacks_del(Evas_Object *obj); void _edje_edd_setup(void); void _edje_edd_free(void); =================================================================== RCS file: /cvs/e/e17/libs/edje/src/lib/edje_util.c,v retrieving revision 1.90 retrieving revision 1.91 diff -u -3 -r1.90 -r1.91 --- edje_util.c 4 Apr 2007 12:46:44 -0000 1.90 +++ edje_util.c 4 Apr 2007 12:51:51 -0000 1.91 @@ -785,6 +785,8 @@ _edje_object_part_swallow_free_cb); evas_object_clip_unset(rp->swallowed_object); evas_object_data_del(rp->swallowed_object, "\377 edje.swallowing_part"); + if (rp->part->mouse_events) + _edje_callbacks_del(rp->swallowed_object); rp->swallowed_object = NULL; } if (!obj_swallow) return; @@ -845,6 +847,17 @@ rp->swallow_params.aspect.h = ah; evas_object_data_set(rp->swallowed_object, "\377 edje.swallowing_part", rp); } + + if (rp->part->mouse_events) + { + _edje_callbacks_add(obj_swallow, ed, rp); + if (rp->part->repeat_events) + evas_object_repeat_events_set(obj_swallow, 1); + } + else + evas_object_pass_events_set(obj_swallow, 1); + + ed->dirty = 1; _edje_recalc(ed); } @@ -1004,6 +1017,10 @@ _edje_object_part_swallow_free_cb); evas_object_clip_unset(rp->swallowed_object); evas_object_data_del(rp->swallowed_object, "\377 edje.swallowing_part"); + + if (rp->part->mouse_events) + _edje_callbacks_del(rp->swallowed_object); + rp->swallowed_object = NULL; rp->swallow_params.min.w = 0; rp->swallow_params.min.h = 0; ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs