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

Reply via email to