From 6c1369c2a674637c4edd0720ddddc7d03b9a39c3 Mon Sep 17 00:00:00 2001 From: raster Date: Fri, 19 Dec 2008 14:30:03 +0000 Subject: [PATCH] add del flag to associate git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@38225 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/ecore_evas/Ecore_Evas.h | 3 ++- src/lib/ecore_evas/ecore_evas_util.c | 36 +++++++++++++++++++++--------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/lib/ecore_evas/Ecore_Evas.h b/src/lib/ecore_evas/Ecore_Evas.h index e3b7ffa..51f152b 100644 --- a/src/lib/ecore_evas/Ecore_Evas.h +++ b/src/lib/ecore_evas/Ecore_Evas.h @@ -96,7 +96,8 @@ typedef enum _Ecore_Evas_Object_Associate_Flags { ECORE_EVAS_OBJECT_ASSOCIATE_BASE = 0, ECORE_EVAS_OBJECT_ASSOCIATE_STACK = 1 << 0, - ECORE_EVAS_OBJECT_ASSOCIATE_LAYER = 1 << 1 + ECORE_EVAS_OBJECT_ASSOCIATE_LAYER = 1 << 1, + ECORE_EVAS_OBJECT_ASSOCIATE_DEL = 1 << 2 } Ecore_Evas_Object_Associate_Flags; #ifndef _ECORE_X_H diff --git a/src/lib/ecore_evas/ecore_evas_util.c b/src/lib/ecore_evas/ecore_evas_util.c index 15eeb1e..65e15d9 100644 --- a/src/lib/ecore_evas/ecore_evas_util.c +++ b/src/lib/ecore_evas/ecore_evas_util.c @@ -338,32 +338,38 @@ _ecore_evas_object_associate(Ecore_Evas *ee, Evas_Object *obj, Ecore_Evas_Object evas_object_event_callback_add (obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _ecore_evas_obj_callback_changed_size_hints, ee); - evas_object_event_callback_add - (obj, EVAS_CALLBACK_DEL, _ecore_evas_obj_callback_del, ee); + if (flags & ECORE_EVAS_OBJECT_ASSOCIATE_DEL) + { + evas_object_event_callback_add + (obj, EVAS_CALLBACK_DEL, _ecore_evas_obj_callback_del, ee); + } evas_object_intercept_move_callback_add (obj, _ecore_evas_obj_intercept_move, ee); if (flags & ECORE_EVAS_OBJECT_ASSOCIATE_STACK) - { - evas_object_intercept_raise_callback_add - (obj, _ecore_evas_obj_intercept_raise, ee); - evas_object_intercept_lower_callback_add - (obj, _ecore_evas_obj_intercept_lower, ee); - evas_object_intercept_stack_above_callback_add - (obj, _ecore_evas_obj_intercept_stack_above, ee); - evas_object_intercept_stack_below_callback_add - (obj, _ecore_evas_obj_intercept_stack_below, ee); - } + { + evas_object_intercept_raise_callback_add + (obj, _ecore_evas_obj_intercept_raise, ee); + evas_object_intercept_lower_callback_add + (obj, _ecore_evas_obj_intercept_lower, ee); + evas_object_intercept_stack_above_callback_add + (obj, _ecore_evas_obj_intercept_stack_above, ee); + evas_object_intercept_stack_below_callback_add + (obj, _ecore_evas_obj_intercept_stack_below, ee); + } if (flags & ECORE_EVAS_OBJECT_ASSOCIATE_LAYER) evas_object_intercept_layer_set_callback_add (obj, _ecore_evas_obj_intercept_layer_set, ee); - ecore_evas_callback_delete_request_set(ee, _ecore_evas_delete_request); - ecore_evas_callback_destroy_set(ee, _ecore_evas_destroy); + if (flags & ECORE_EVAS_OBJECT_ASSOCIATE_DEL) + { + ecore_evas_callback_delete_request_set(ee, _ecore_evas_delete_request); + ecore_evas_callback_destroy_set(ee, _ecore_evas_destroy); + ecore_evas_callback_pre_free_set(ee, _ecore_evas_pre_free); + } ecore_evas_callback_resize_set(ee, _ecore_evas_resize); - ecore_evas_callback_pre_free_set(ee, _ecore_evas_pre_free); _evas_object_associate_set(obj, ee); _ecore_evas_associate_set(ee, obj); -- 2.7.4