Modified to deliver valid geometry information to the IMMODULE 70/241070/1
authorInHong Han <inhong1.han@samsung.com>
Thu, 23 Jan 2020 05:38:20 +0000 (14:38 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Fri, 14 Aug 2020 08:33:16 +0000 (17:33 +0900)
Change-Id: I331b8f32a19c4ce8ffa16ace53d5a25dbc9d3903
(cherry picked from commit e11db9e8f9bc95782cb8bf5c2a707a83920dd39f)

src/e_mod_input_panel.c

index cac13b0a7705f399d834859c45a9b1bff17bf5ca..2b1dcc7540d0597d6161203cd2a24108dca14c7f 100644 (file)
@@ -1218,6 +1218,7 @@ e_input_panel_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h)
     E_Input_Panel_Surface *ips;
     Eina_List *l;
     int angle = 0;
+    int zx, zy, zw, zh;
 
     if (!g_input_panel) return EINA_FALSE;
     if (!x || !y || !w || !h) return EINA_FALSE;
@@ -1231,15 +1232,28 @@ e_input_panel_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h)
                     ips->ec->e.state.rot.ang.curr :
                     ips->ec->e.state.rot.ang.next;
 
+            e_zone_useful_geometry_get(ips->ec->zone, &zx, &zy, &zw, &zh);
             switch (angle)
               {
                case 90:
+                  *x = zh - ips->ec->y - ips->ec->client.h;
+                  *y = ips->ec->x;
+                  *w = ips->ec->h;
+                  *h = ips->ec->w;
+                  break;
+               case 180:
+                  *x = zh - ips->ec->y - ips->ec->client.h;
+                  *y = zw - ips->ec->x - ips->ec->client.w;
+                  *w = ips->ec->w;
+                  *h = ips->ec->h;
+                  break;
                case 270:
                   *x = ips->ec->y;
-                  *y = ips->ec->x;
+                  *y = zw - ips->ec->x - ips->ec->client.w;
                   *w = ips->ec->h;
                   *h = ips->ec->w;
                   break;
+               case 0:
                default:
                   *x = ips->ec->x;
                   *y = ips->ec->y;