Fix wrong VI issues related to depth-in senario 91/115791/2
authorparksanghee <sh15.park@samsung.com>
Tue, 21 Feb 2017 09:26:43 +0000 (18:26 +0900)
committerparksanghee <sh15.park@samsung.com>
Wed, 22 Feb 2017 04:48:19 +0000 (13:48 +0900)
Change-Id: I2e452aafa731474a7cec9223fb461fe7c9e3191e

src/e_mod_effect.c

index 89ad4e9..9b619e9 100644 (file)
@@ -243,12 +243,30 @@ _eff_object_setup(E_Client *ec, E_Effect_Group group)
      e_comp_object_effect_set(ec->frame, "keyboard");
    else
      {
-        if ((cfg) && (cfg->depth_in_style) && (ec->effect_type))
+        E_Effect_Client *efc = NULL;
+        E_Client *parent_ec = ec;
+
+        efc = _eff_client_get(ec);
+
+        while (parent_ec->parent)
+          parent_ec = parent_ec->parent;
+
+        if ((parent_ec) && (parent_ec != ec) && (parent_ec->launching)) // Launchig case with parent at same time
+          e_comp_object_effect_set(ec->frame, cfg->effect_style);
+        else if ((efc) && (e_policy_client_is_home_screen(efc->reverse_ec))) // Home key effect senario
+          e_comp_object_effect_set(ec->frame, cfg->effect_style);
+        else if ((cfg) && (cfg->depth_in_style) && (ec->effect_type)) //depth-in senario
           e_comp_object_effect_set(ec->frame, cfg->depth_in_style);
-        else if ((cfg) && (cfg->effect_style))
+        else if ((cfg) && (cfg->effect_style))  // normal launching case
           e_comp_object_effect_set(ec->frame, cfg->effect_style);
         else
           e_comp_object_effect_set(ec->frame, "no-effect");
+
+        EFFINF("eff Setup efc(%p) home(%d) type(%d) parent(%d)",
+               ec->pixmap, ec, efc,
+               efc? e_policy_client_is_home_screen(efc->reverse_ec) : 0,
+               ec->effect_type,
+               parent_ec == ec ? -1 : parent_ec->launching);
      }
 }
 
@@ -824,6 +842,7 @@ _eff_cb_restack_finish_done(void *data, Evas_Object *obj, const char *sig, const
                     }
                   _eff_unref(ec_home);
                }
+             efc->reverse_ec = NULL;
           }
 
         _eff_unref(ec);