From: Duna Oh Date: Wed, 11 Jan 2017 07:17:56 +0000 (+0900) Subject: policy: moved codes of e_policy_keyboard.h/c to e_policy.h/c X-Git-Tag: accepted/tizen/3.0/common/20170116.122031~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=25412fdfe256f43ce87586f1bfed75fa5d6b9606;p=platform%2Fupstream%2Fenlightenment.git policy: moved codes of e_policy_keyboard.h/c to e_policy.h/c Signed-off-by: Duna Oh Change-Id: I5631f8923246e3fd397a0ca5ed87b76b74f091ec --- diff --git a/src/bin/Makefile.mk b/src/bin/Makefile.mk index 3ee47db..f5cba00 100644 --- a/src/bin/Makefile.mk +++ b/src/bin/Makefile.mk @@ -106,7 +106,6 @@ src/bin/services/e_service_cbhm.h \ src/bin/services/e_service_scrsaver.h \ src/bin/e_policy.h \ src/bin/e_policy_visibility.h \ -src/bin/e_policy_keyboard.h \ src/bin/e_policy_private_data.h \ src/bin/e_policy_wl.h \ src/bin/e_policy_wl_display.h \ @@ -196,7 +195,6 @@ src/bin/services/e_service_cbhm.c \ src/bin/services/e_service_scrsaver.c \ src/bin/e_policy.c \ src/bin/e_policy_conformant.c \ -src/bin/e_policy_keyboard.c \ src/bin/e_policy_softkey.c \ src/bin/e_policy_stack.c \ src/bin/e_policy_visibility.c \ diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index f437c86..1ec3db5 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -1,5 +1,4 @@ #include "e.h" -#include "e_policy_keyboard.h" /* E_Desk is a child object of E_Zone. A desk is essentially a background * and an associated set of client windows. Each zone can have an arbitrary diff --git a/src/bin/e_policy.c b/src/bin/e_policy.c index c4bb6d8..e32ca34 100644 --- a/src/bin/e_policy.c +++ b/src/bin/e_policy.c @@ -1,5 +1,4 @@ #include "e.h" -#include "e_policy_keyboard.h" #include "e_policy_conformant.h" #include "e_policy_wl.h" #include "e_policy_visibility.h" @@ -1531,6 +1530,74 @@ e_policy_client_maximize(E_Client *ec) return _e_policy_client_maximize_policy_apply(pc); } +EINTERN void +e_policy_keyboard_layout_apply(E_Client *ec EINA_UNUSED) +{ +/* FIXME: do not resize and move client. + * ec->e.state.rot.geom[].w/h is always 0, + * then the geometry calculated here is not valid. */ +#if 0 + int angle; + int angle_id = 0; + int kbd_x, kbd_y, kbd_w, kbd_h; + + if (!e_policy_client_is_keyboard(ec) && + !e_policy_client_is_keyboard_sub(ec)) + return; + + angle = e_client_rotation_curr_angle_get(ec); + + switch (angle) + { + case 0: angle_id = 0; break; + case 90: angle_id = 1; break; + case 180: angle_id = 2; break; + case 270: angle_id = 3; break; + default: angle_id = 0; break; + } + + kbd_w = ec->e.state.rot.geom[angle_id].w; + kbd_h = ec->e.state.rot.geom[angle_id].h; + + switch (angle) + { + case 0: + kbd_x = ec->zone->w - kbd_w; + kbd_y = ec->zone->h - kbd_h; + break; + + case 90: + kbd_x = ec->zone->w - kbd_w; + kbd_y = ec->zone->h - kbd_h; + break; + + case 180: + kbd_x = 0; + kbd_y = 0; + break; + + case 270: + kbd_x = 0; + kbd_y = 0; + break; + + default: + kbd_x = ec->zone->w - kbd_w; + kbd_y = ec->zone->h - kbd_h; + break; + } + + if ((ec->frame) && + ((ec->w != kbd_w) || (ec->h != kbd_h))) + e_client_util_resize_without_frame(ec, kbd_w, kbd_h); + + if ((e_policy_client_is_keyboard(ec)) && + (ec->frame) && + ((ec->x != kbd_x) || (ec->y != kbd_y))) + e_client_util_move_without_frame(ec, kbd_x, kbd_y); +#endif +} + Eina_Bool e_policy_client_is_lockscreen(E_Client *ec) { @@ -1721,6 +1788,35 @@ e_policy_client_is_splited(E_Client *ec) return EINA_FALSE; } +Eina_Bool +e_policy_client_is_keyboard(E_Client *ec) +{ + E_OBJECT_CHECK_RETURN(ec, EINA_FALSE); + E_OBJECT_TYPE_CHECK_RETURN(ec, E_CLIENT_TYPE, EINA_FALSE); + + if (ec->vkbd.vkbd) return EINA_TRUE; + + return EINA_FALSE; +} + +Eina_Bool +e_policy_client_is_keyboard_sub(E_Client *ec) +{ + E_OBJECT_CHECK_RETURN(ec, EINA_FALSE); + E_OBJECT_TYPE_CHECK_RETURN(ec, E_CLIENT_TYPE, EINA_FALSE); + + if (ec->vkbd.vkbd) return EINA_FALSE; + + if ((ec->icccm.class) && + (!strcmp(ec->icccm.class, "ISF"))) + return EINA_TRUE; + if ((ec->icccm.title) && + ((!strcmp(ec->icccm.title, "ISF Popup")) || (!strcmp(ec->icccm.title, "ISF Magnifier")))) + return EINA_TRUE; + + return EINA_FALSE; +} + void e_policy_interceptors_clean(void) { diff --git a/src/bin/e_policy.h b/src/bin/e_policy.h index 23d15d1..9fddd7d 100644 --- a/src/bin/e_policy.h +++ b/src/bin/e_policy.h @@ -124,6 +124,8 @@ E_API Eina_Bool e_policy_client_is_cbhm(E_Client *ec); E_API Eina_Bool e_policy_client_is_splited(E_Client *ec); E_API Eina_Bool e_policy_client_is_toast_popup(E_Client *ec); E_API Eina_Bool e_policy_client_is_dialog(E_Client *ec); +E_API Eina_Bool e_policy_client_is_keyboard(E_Client *ec); +E_API Eina_Bool e_policy_client_is_keyboard_sub(E_Client *ec); EINTERN E_Policy_Softkey *e_policy_softkey_add(E_Zone *zone); EINTERN void e_policy_softkey_del(E_Policy_Softkey *softkey); @@ -137,6 +139,7 @@ EINTERN void e_policy_client_iconify_by_visibility(E_Client *ec); EINTERN void e_policy_client_uniconify_by_visibility(E_Client *ec); EINTERN Eina_Bool e_policy_client_maximize(E_Client *ec); +EINTERN void e_policy_keyboard_layout_apply(E_Client *ec); EINTERN void e_policy_client_window_opaque_set(E_Client *ec); diff --git a/src/bin/e_policy_keyboard.c b/src/bin/e_policy_keyboard.c deleted file mode 100644 index e2952fe..0000000 --- a/src/bin/e_policy_keyboard.c +++ /dev/null @@ -1,98 +0,0 @@ -#include "e_policy_keyboard.h" - -E_API Eina_Bool -e_policy_client_is_keyboard(E_Client *ec) -{ - E_OBJECT_CHECK_RETURN(ec, EINA_FALSE); - E_OBJECT_TYPE_CHECK_RETURN(ec, E_CLIENT_TYPE, EINA_FALSE); - - if (ec->vkbd.vkbd) return EINA_TRUE; - - return EINA_FALSE; -} - -E_API Eina_Bool -e_policy_client_is_keyboard_sub(E_Client *ec) -{ - E_OBJECT_CHECK_RETURN(ec, EINA_FALSE); - E_OBJECT_TYPE_CHECK_RETURN(ec, E_CLIENT_TYPE, EINA_FALSE); - - if (ec->vkbd.vkbd) return EINA_FALSE; - - if ((ec->icccm.class) && - (!strcmp(ec->icccm.class, "ISF"))) - return EINA_TRUE; - if ((ec->icccm.title) && - (!strcmp(ec->icccm.title, "ISF Popup"))) - return EINA_TRUE; - - return EINA_FALSE; -} - -EINTERN void -e_policy_keyboard_layout_apply(E_Client *ec EINA_UNUSED) -{ -/* FIXME: do not resize and move client. - * ec->e.state.rot.geom[].w/h is always 0, - * then the geometry calculated here is not valid. */ -#if 0 - int angle; - int angle_id = 0; - int kbd_x, kbd_y, kbd_w, kbd_h; - - if (!e_policy_client_is_keyboard(ec) && - !e_policy_client_is_keyboard_sub(ec)) - return; - - angle = e_client_rotation_curr_angle_get(ec); - - switch (angle) - { - case 0: angle_id = 0; break; - case 90: angle_id = 1; break; - case 180: angle_id = 2; break; - case 270: angle_id = 3; break; - default: angle_id = 0; break; - } - - kbd_w = ec->e.state.rot.geom[angle_id].w; - kbd_h = ec->e.state.rot.geom[angle_id].h; - - switch (angle) - { - case 0: - kbd_x = ec->zone->w - kbd_w; - kbd_y = ec->zone->h - kbd_h; - break; - - case 90: - kbd_x = ec->zone->w - kbd_w; - kbd_y = ec->zone->h - kbd_h; - break; - - case 180: - kbd_x = 0; - kbd_y = 0; - break; - - case 270: - kbd_x = 0; - kbd_y = 0; - break; - - default: - kbd_x = ec->zone->w - kbd_w; - kbd_y = ec->zone->h - kbd_h; - break; - } - - if ((ec->frame) && - ((ec->w != kbd_w) || (ec->h != kbd_h))) - e_client_util_resize_without_frame(ec, kbd_w, kbd_h); - - if ((e_policy_client_is_keyboard(ec)) && - (ec->frame) && - ((ec->x != kbd_x) || (ec->y != kbd_y))) - e_client_util_move_without_frame(ec, kbd_x, kbd_y); -#endif -} diff --git a/src/bin/e_policy_keyboard.h b/src/bin/e_policy_keyboard.h deleted file mode 100644 index 58cb454..0000000 --- a/src/bin/e_policy_keyboard.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef E_POLICY_KEYBOARD_H -#define E_POLICY_KEYBOARD_H -#include - -E_API Eina_Bool e_policy_client_is_keyboard(E_Client *ec); -E_API Eina_Bool e_policy_client_is_keyboard_sub(E_Client *ec); -EINTERN void e_policy_keyboard_layout_apply(E_Client *ec); - -#endif diff --git a/src/bin/e_policy_visibility.c b/src/bin/e_policy_visibility.c index 09e31fd..287e7d8 100644 --- a/src/bin/e_policy_visibility.c +++ b/src/bin/e_policy_visibility.c @@ -7,7 +7,6 @@ #include "e.h" #include "e_comp_wl.h" #include "e_policy_wl.h" -#include "e_policy_keyboard.h" #include "e_policy_visibility.h" #include "e_policy_visibility_internal.h" diff --git a/src/bin/services/e_service_quickpanel.c b/src/bin/services/e_service_quickpanel.c index 90dac34..9312ce6 100644 --- a/src/bin/services/e_service_quickpanel.c +++ b/src/bin/services/e_service_quickpanel.c @@ -3,7 +3,6 @@ #include "services/e_service_gesture.h" #include "services/e_service_region.h" #include "e_policy_wl.h" -#include "e_policy_keyboard.h" #define SMART_NAME "quickpanel_object" #define INTERNAL_ENTRY \