evas: reduce complexity and update needed for smart object bounding box.
authorcedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 2 May 2012 02:17:33 +0000 (02:17 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 2 May 2012 02:17:33 +0000 (02:17 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/evas@70588 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/canvas/evas_object_main.c

index f31e7bd..f5433d7 100644 (file)
@@ -486,6 +486,10 @@ evas_object_update_bounding_box(Evas_Object *obj)
         ph = obj->prev.geometry.h;
      }
 
+   /* We are not yet trying to find the smallest bounding box, but we want to find a good approximation quickly.
+    * That's why we initialiaze min and max search to geometry of the parent object.
+    */
+
    /* Update left limit */
    if (!clip && x < obj->smart.parent->cur.bounding_box.x)
      {
@@ -498,7 +502,7 @@ evas_object_update_bounding_box(Evas_Object *obj)
      {
         const Eina_Inlist *list;
         const Evas_Object *o;
-        Evas_Coord minx = clip ? obj->layer->evas->output.w : x;
+        Evas_Coord minx = obj->smart.parent->cur.geometry.x;
 
         list = evas_object_smart_members_get_direct(obj->smart.parent);
         EINA_INLIST_FOREACH(list, o)
@@ -528,7 +532,7 @@ evas_object_update_bounding_box(Evas_Object *obj)
      {
         const Eina_Inlist *list;
         const Evas_Object *o;
-        Evas_Coord miny = clip ? obj->layer->evas->output.h : y;
+        Evas_Coord miny = obj->smart.parent->cur.geometry.y;
 
         list = evas_object_smart_members_get_direct(obj->smart.parent);
         EINA_INLIST_FOREACH(list, o)
@@ -558,7 +562,7 @@ evas_object_update_bounding_box(Evas_Object *obj)
      {
         const Eina_Inlist *list;
         const Evas_Object *o;
-        Evas_Coord maxw = clip ? 0 : x + w;
+        Evas_Coord maxw = obj->smart.parent->cur.geometry.x + obj->smart.parent->cur.geometry.w;
 
         list = evas_object_smart_members_get_direct(obj->smart.parent);
         EINA_INLIST_FOREACH(list, o)
@@ -589,7 +593,7 @@ evas_object_update_bounding_box(Evas_Object *obj)
      {
         const Eina_Inlist *list;
         const Evas_Object *o;
-        Evas_Coord maxh = clip ? 0 : y + h;
+        Evas_Coord maxh = obj->smart.parent->cur.geometry.y + obj->smart.parent->cur.geometry.h;
 
         list = evas_object_smart_members_get_direct(obj->smart.parent);
         EINA_INLIST_FOREACH(list, o)