return group;
}
+static int
+_eff_group_angle_get(E_Client *ec, E_Effect_Group group)
+{
+ if (group == E_EFFECT_GROUP_KEYBOARD)
+ {
+ if (ec->parent)
+ return ec->parent->e.state.rot.ang.curr;
+ }
+
+ return ec->e.state.rot.ang.curr;
+}
+
static Eina_Bool
_eff_ref(E_Client *ec)
{
ec->extra_animating = EINA_TRUE;
_eff_object_setup(ec, group);
- ang = ec->e.state.rot.ang.curr;
+ ang = _eff_group_angle_get(ec, group);
e_comp_object_effect_params_set(ec->frame, 0, (int[]){0, ang}, 2);
if (e_comp->nocomp)
{
if (!ec) return EINA_FALSE;
if (e_object_is_del(E_OBJECT(ec))) return EINA_FALSE;
+ /* check for effect group */
group = _eff_group_get(ec);
if ((group != E_EFFECT_GROUP_NORMAL) &&
(group != E_EFFECT_GROUP_KEYBOARD)) return EINA_FALSE;
+ if (group == E_EFFECT_GROUP_KEYBOARD)
+ {
+ if (ec->visibility.obscured == E_VISIBILITY_FULLY_OBSCURED)
+ return EINA_FALSE;
+ }
+
if (!evas_object_visible_get(obj)) return EINA_FALSE;
if (!_eff_ref(ec)) return EINA_FALSE;
_eff_object_layer_up(ec);
_eff_object_setup(ec, group);
- ang = ec->e.state.rot.ang.curr;
+ ang = _eff_group_angle_get(ec, group);
e_comp_object_effect_params_set(ec->frame, 0, (int[]){1, ang}, 2);
if (e_comp->nocomp)
e_comp_override_add();
_eff_object_setup(ec, group);
- ang = ec->e.state.rot.ang.curr;
+ ang = _eff_group_angle_get(ec, group);
e_comp_object_effect_params_set(ec->frame, 0, (int[]){0, ang}, 2);
if (e_comp->nocomp)
e_comp_override_add();
_eff_object_setup(ec, group);
- ang = ec->e.state.rot.ang.curr;
+ ang = _eff_group_angle_get(ec, group);
e_comp_object_effect_params_set(ec->frame, 0, (int[]){1, ang}, 2);
if (e_comp->nocomp)
ec_home = ec;
ec = below;
group = _eff_group_get(ec);
+ if (group != E_EFFECT_GROUP_NORMAL) return EINA_FALSE;
if (emission) eina_stringshare_del(emission);
emission = eina_stringshare_add("e,action,restack,hide");
_eff_object_layer_up(ec);
_eff_object_setup(ec, group);
- ang = ec->e.state.rot.ang.curr;
+ ang = _eff_group_angle_get(ec, group);
e_comp_object_effect_params_set(ec->frame, 0, (int[]){2, ang}, 2);
if (e_comp->nocomp)
_eff_object_layer_up(ec);
_eff_object_setup(ec, group);
- ang = ec->e.state.rot.ang.curr;
+ ang = _eff_group_angle_get(ec, group);
e_comp_object_effect_params_set(ec->frame, 0, (int[]){3, ang}, 2);
if (e_comp->nocomp)
e_comp_override_add();
_eff_object_setup(ec, group);
- ang = ec->e.state.rot.ang.curr;
+ ang = _eff_group_angle_get(ec, group);
e_comp_object_effect_params_set(ec->frame, 0, (int[]){4, ang}, 2);
if (e_comp->nocomp)
else
{
eff->file = "";
- eff->style = "no-eff";
+ eff->style = "no-effect";
}
eff->clients = eina_hash_pointer_new(_eff_cb_client_data_free);