[evas] Interfaces improvement.
authorglima <glima@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 17 Jul 2012 14:50:25 +0000 (14:50 +0000)
committerglima <glima@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 17 Jul 2012 14:50:25 +0000 (14:50 +0000)
iface add() before smart add() is better.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@73991 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/Evas.h
src/lib/canvas/evas_object_smart.c

index f159fd2..4dda353 100644 (file)
@@ -9675,8 +9675,8 @@ struct _Evas_Smart_Interface
 {
    const char *name; /**< Name of the given interface */
    unsigned    private_size; /**< Size, in bytes, of the interface's private dada blob. This will be allocated and freed automatically for you. Get it with evas_object_smart_interface_data_get(). */
-   Eina_Bool   (*add)(Evas_Object *obj); /**< Function to be called at object creation time */
-   void        (*del)(Evas_Object *obj); /**< Function to be called at object deletion time */
+   Eina_Bool   (*add)(Evas_Object *obj); /**< Function to be called at object creation time. This will take place @b before the object's smart @c add() function. */
+   void        (*del)(Evas_Object *obj); /**< Function to be called at object deletion time. This will take place @b after the object's smart @c del() function. */
 };
 
 /**
index 82f0368..3db0c4c 100644 (file)
@@ -448,8 +448,6 @@ evas_object_smart_add(Evas *e, Evas_Smart *s)
 
    _evas_smart_class_ifaces_private_data_alloc(obj, s);
 
-   if (s->smart_class->add) s->smart_class->add(obj);
-
    for (i = 0; i < s->interfaces.size; i++)
      {
         const Evas_Smart_Interface *iface;
@@ -466,6 +464,8 @@ evas_object_smart_add(Evas *e, Evas_Smart *s)
           }
      }
 
+   if (s->smart_class->add) s->smart_class->add(obj);
+
    return obj;
 }