device: calculate new position to warp, if client is transform enabled 06/117706/3
authorDuna Oh <duna.oh@samsung.com>
Tue, 7 Mar 2017 07:19:34 +0000 (16:19 +0900)
committerDuna Oh <duna.oh@samsung.com>
Tue, 7 Mar 2017 09:44:48 +0000 (18:44 +0900)
Signed-off-by: Duna Oh <duna.oh@samsung.com>
Change-Id: If8a6f8f030217457f2062e77641d95337525df6c

src/e_devicemgr_device.c

index 356c2dcd72f210c7f69f784984ed5de5dd2d6667..418de8caf392dbf93bf0d78e7f5b7afb7f6113f3 100644 (file)
@@ -1599,6 +1599,7 @@ _e_input_devmgr_cb_pointer_warp(struct wl_client *client, struct wl_resource *re
 {
    E_Client *ec = NULL;
    int ret;
+   int new_x, new_y;
 
    if (!(ec = wl_resource_get_user_data(surface)) || !ec->visible)
      {
@@ -1621,7 +1622,12 @@ _e_input_devmgr_cb_pointer_warp(struct wl_client *client, struct wl_resource *re
         return;
      }
 
-   ret = _e_devicemgr_pointer_warp(ec->client.x + wl_fixed_to_int(x), ec->client.y + wl_fixed_to_int(y));
+   new_x = wl_fixed_to_int(x);
+   new_y = wl_fixed_to_int(y);
+   if (e_client_transform_core_enable_get(ec))
+     e_client_transform_core_input_inv_transform(ec, wl_fixed_to_int(x), wl_fixed_to_int(y), &new_x, &new_y);
+
+   ret = _e_devicemgr_pointer_warp(ec->client.x + new_x, ec->client.y + new_y);
    tizen_input_device_manager_send_error(resource, ret);
 }