raster pushed a commit to branch master.
commit 98efd5ad86d57202163565ea60074d836edc8aa1
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date: Mon Jun 3 17:17:33 2013 +0900
fix edje parts of type GROUP on size min calc to calc the child groups too
---
ChangeLog | 5 +++++
NEWS | 1 +
src/lib/edje/edje_calc.c | 17 +++++++++++++++--
3 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 71570ff..09ba1a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-06-03 Carsten Haitzler (The Rasterman)
+
+ * Fix edje min size calc to propagate min size calcs to GROUP
+ items swallowed in automatically.
+
2013-05-31 ChunEon Park (Hermet)
* Edje: support edc proxy.source_visible, proxy.source_clip
diff --git a/NEWS b/NEWS
index 16bcda4..a5a61b0 100644
--- a/NEWS
+++ b/NEWS
@@ -288,3 +288,4 @@ Fixes:
* Fix srv->start_time (initialization missing). So now
ecore_con_server_uptime_get() is working for plain TCP connections.
* Fix textblock to render pre again if it needs to relayouting.
+ * Fix edje min size calc to calc sub GROUP parts too.
diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index f672313..a857fa2 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -9,6 +9,7 @@ static void _edje_part_recalc_single(Edje *ed, Edje_Real_Part
*ep,
Edje_Real_Part *rel1_to_x, Edje_Real_Part
*rel1_to_y,
Edje_Real_Part *rel2_to_x, Edje_Real_Part
*rel2_to_y,
Edje_Real_Part *confine_to,
Edje_Calc_Params *params,
+ Evas_Coord mmw, Evas_Coord mmh,
FLOAT_T pos);
#define EINA_COW_CALC_PHYSICS_BEGIN(Calc, Write) \
@@ -2178,6 +2179,7 @@ _edje_part_recalc_single(Edje *ed,
Edje_Real_Part *rel2_to_y,
Edje_Real_Part *confine_to,
Edje_Calc_Params *params,
+ Evas_Coord mmw, Evas_Coord mmh,
FLOAT_T pos)
{
Edje_Color_Class *cc = NULL;
@@ -2188,6 +2190,8 @@ _edje_part_recalc_single(Edje *ed,
sc = ed->scale;
if (sc == ZERO) sc = _edje_scale;
_edje_part_recalc_single_min_max(sc, ed, ep, desc, &minw, &minh, &maxw,
&maxh);
+ if (minw < mmw) minw = mmw;
+ if (minh < mmh) minh = mmh;
/* relative coords of top left & bottom right */
_edje_part_recalc_single_rel(ed, ep, desc, rel1_to_x, rel1_to_y, rel2_to_x,
rel2_to_y, params);
@@ -2761,6 +2765,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int
flags, Edje_Calc_Params *sta
Edje_Real_Part *confine_to = NULL;
FLOAT_T pos = ZERO, pos2;
Edje_Calc_Params lp3;
+ Evas_Coord mmw = 0, mmh = 0;
/* GRADIENT ARE GONE, WE MUST IGNORE IT FROM OLD FILE. */
if (ep->part->type == EDJE_PART_TYPE_GRADIENT)
@@ -2827,6 +2832,14 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int
flags, Edje_Calc_Params *sta
_edje_recalc_do(ted);
}
}
+ if (ep->part->type == EDJE_PART_TYPE_GROUP &&
+ ((ep->type == EDJE_RP_TYPE_SWALLOW) &&
+ (ep->typedata.swallow)) &&
+ ep->typedata.swallow->swallowed_object)
+ {
+ edje_object_size_min_calc(ep->typedata.swallow->swallowed_object,
+ &mmw, &mmh);
+ }
#ifdef EDJE_CALC_CACHE
if (ep->state == ed->state && !state)
@@ -3021,7 +3034,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int
flags, Edje_Calc_Params *sta
_edje_part_recalc_single(ed, ep, ep->param1.description,
chosen_desc, center[0], light[0], persp[0],
rp1[Rel1X], rp1[Rel1Y], rp1[Rel2X],
rp1[Rel2Y],
confine_to,
- p1, pos);
+ p1, mmw, mmh, pos);
#ifdef EDJE_CALC_CACHE
if (flags == FLAG_XY)
ep->param1.state = ed->state;
@@ -3090,7 +3103,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int
flags, Edje_Calc_Params *sta
rp2[Rel2X],
rp2[Rel2Y],
confine_to,
- p2, pos);
+ p2, mmw, mmh, pos);
#ifdef EDJE_CALC_CACHE
if (flags == FLAG_XY)
ep->param2->state = ed->state;
--
------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2