e_devicemgr:fix the wrong cursor position after pointer warp request by non-fullscree... 88/262188/2
authorDuna Oh <duna.oh@samsung.com>
Wed, 4 Aug 2021 00:15:22 +0000 (09:15 +0900)
committerDuna Oh <duna.oh@samsung.com>
Wed, 4 Aug 2021 05:01:40 +0000 (14:01 +0900)
The warp request from an app should be in relative coordinate which is bound to (0,0 ~ width,height).
After clipping warp coords to inside of the window, we add up the the x,y position of window
to handle the warp coords in server side.

Change-Id: Ic78a352e4ede83dae3826a57338213fedeb73324

src/bin/e_devicemgr_input.c

index af615a2..6c656cf 100644 (file)
@@ -55,11 +55,11 @@ e_devicemgr_input_pointer_warp(struct wl_client *client, struct wl_resource *res
    new_x = wl_fixed_to_int(x);
    new_y = wl_fixed_to_int(y);
 
-   if (new_x < ec->x) new_x = ec->x;
-   if ((ec->w != 0) && (new_x > ec->x + ec->w - 1)) new_x = ec->x + ec->w - 1;
+   if (new_x < 0) new_x = 0;
+   if ((ec->w != 0) && (new_x > ec->w - 1)) new_x = ec->w - 1;
 
-   if (new_y < ec->y) new_y = ec->y;
-   if ((ec->h != 0) && (new_y > ec->y + ec->h - 1)) new_y = ec->y + ec->h - 1;
+   if (new_y < 0) new_y = 0;
+   if ((ec->h != 0) && (new_y > ec->h - 1)) new_y = ec->h - 1;
 
    if (evas_object_map_enable_get(ec->frame))
      {