conformant: postpone sending conformant_area until window animation ends 51/98451/3
authorMinJeong Kim <minjjj.kim@samsung.com>
Mon, 14 Nov 2016 08:29:26 +0000 (17:29 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Mon, 21 Nov 2016 05:28:49 +0000 (21:28 -0800)
Change-Id: I9e03a64fd86f85f493d6cff2740821748ff83fc8
Signed-off-by: MinJeong Kim <minjjj.kim@samsung.com>
src/bin/e_policy_conformant.c

index f54f018c89951edf9982e35576f2fa21c3954f46..9a30fc41139d30ff39cc805835b5336f390f5838 100644 (file)
@@ -501,11 +501,27 @@ _conf_idle_enter(void *data)
 
    for (type = CONFORMANT_TYPE_INDICATOR; type < CONFORMANT_TYPE_MAX; type ++)
      {
+        visible = EINA_FALSE;
+        x = y = w = h = 0;
+
         if (conf->part[type].changed)
           {
-             visible = evas_object_visible_get(conf->part[type].ec->frame);
-             evas_object_geometry_get(conf->part[type].ec->frame, &x, &y, &w, &h);
+             if (conf->part[type].ec)
+               {
+                  E_Client *ec = conf->part[type].ec;
+
+                  //wait for end of animation
+                  if ((e_comp_object_is_animating(ec->frame)) ||
+                      (evas_object_data_get(ec->frame, "effect_running")))
+                    {
+                       CFDBG("Animation is running, skip and try next ec(%p)", ec);
+                       continue;
+                    }
 
+                  visible = evas_object_visible_get(conf->part[type].ec->frame);
+                  evas_object_geometry_get(conf->part[type].ec->frame, &x, &y, &w, &h);
+
+               }
              _conf_state_update(conf, type, visible, x, y, w, h);
              conf->part[type].changed = EINA_FALSE;
           }