From f316090fa993627c2c0cc3ffe91bb41a021fe9b7 Mon Sep 17 00:00:00 2001 From: cedric Date: Wed, 2 May 2012 02:17:33 +0000 Subject: [PATCH] evas: reduce complexity and update needed for smart object bounding box. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@70588 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/canvas/evas_object_main.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/lib/canvas/evas_object_main.c b/src/lib/canvas/evas_object_main.c index f31e7bd..f5433d7 100644 --- a/src/lib/canvas/evas_object_main.c +++ b/src/lib/canvas/evas_object_main.c @@ -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) -- 2.7.4