From efe4ab8a860ed4e541b48175c57c3b1135ef6203 Mon Sep 17 00:00:00 2001 From: MinJeong Kim Date: Tue, 22 Nov 2016 15:51:20 +0900 Subject: [PATCH] keyboard: fix processing wrong angle Change-Id: I51ba13eb67602dcfcfdcf6913a5f1c5189aa3e72 Signed-off-by: MinJeong Kim --- src/e_mod_effect.c | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/src/e_mod_effect.c b/src/e_mod_effect.c index 3aece03..7356b7d 100644 --- a/src/e_mod_effect.c +++ b/src/e_mod_effect.c @@ -128,6 +128,18 @@ _eff_group_get(E_Client *ec) 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) { @@ -436,7 +448,7 @@ _eff_cb_visible(void *data, Evas_Object *obj, const char *signal) 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) { @@ -491,10 +503,17 @@ _eff_cb_hidden(void *data, Evas_Object *obj, const char *signal) 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; @@ -512,7 +531,7 @@ _eff_cb_hidden(void *data, Evas_Object *obj, const char *signal) _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) @@ -620,7 +639,7 @@ _eff_cb_uniconify(void *data, Evas_Object *obj, const char *signal) 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) @@ -694,7 +713,7 @@ _eff_cb_iconify(void *data, Evas_Object *obj, const char *signal) 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) @@ -826,6 +845,7 @@ _eff_cb_restack(void *data, Evas_Object *obj, const char *signal) 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"); @@ -846,7 +866,7 @@ _eff_cb_restack(void *data, Evas_Object *obj, const char *signal) _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) @@ -889,7 +909,7 @@ _eff_cb_restack(void *data, Evas_Object *obj, const char *signal) _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) @@ -911,7 +931,7 @@ _eff_cb_restack(void *data, Evas_Object *obj, const char *signal) 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) @@ -1158,7 +1178,7 @@ e_mod_effect_init(void) else { eff->file = ""; - eff->style = "no-eff"; + eff->style = "no-effect"; } eff->clients = eina_hash_pointer_new(_eff_cb_client_data_free); -- 2.7.4