add del flag to associate
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 19 Dec 2008 14:30:03 +0000 (14:30 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 19 Dec 2008 14:30:03 +0000 (14:30 +0000)
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
src/lib/ecore_evas/ecore_evas_util.c

index e3b7ffa..51f152b 100644 (file)
@@ -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
index 15eeb1e..65e15d9 100644 (file)
@@ -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);