discomfitor pushed a commit to branch master.
commit 2dee0a9357da5f4d868e597d32d26f51a805d607
Author: Mike Blumenkrantz <[email protected]>
Date: Fri Jul 19 15:09:27 2013 +0100
edje don't unswallow and reswallow an object into the same part if it's
already there
---
src/lib/edje/edje_util.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c
index 7fc4178..e2e9d61 100644
--- a/src/lib/edje/edje_util.c
+++ b/src/lib/edje/edje_util.c
@@ -3348,7 +3348,7 @@ _part_swallow(Eo *obj EINA_UNUSED, void *_pd, va_list
*list)
Evas_Object *obj_swallow = va_arg(*list, Evas_Object *);
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
Edje *ed = _pd;
- Edje_Real_Part *rp;
+ Edje_Real_Part *rp, *rpcur;
Edje_User_Defined *eud = NULL;
if (ret) *ret = EINA_FALSE;
@@ -3364,14 +3364,16 @@ _part_swallow(Eo *obj EINA_UNUSED, void *_pd, va_list
*list)
// XXX: by Sachiel, January 21th 2009, 19:30 UTC
_edje_recalc_do(ed);
- rp = evas_object_data_get(obj_swallow, "\377 edje.swallowing_part");
- if (rp)
+ rp = _edje_real_part_recursive_get(&ed, part);
+ rpcur = evas_object_data_get(obj_swallow, "\377 edje.swallowing_part");
+ if (rpcur)
{
+ /* the object is already swallowed in the requested part */
+ if (rpcur == rp) return;
/* The object is already swallowed somewhere, unswallow it first */
edje_object_part_unswallow(ed->obj, obj_swallow);
}
- rp = _edje_real_part_recursive_get(&ed, part);
if (!rp)
{
DBG("cannot swallow part %s: part not exist!", part);
--
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk