e_client: modify the transform position 59/320059/1
authorJunseok Kim <juns.kim@samsung.com>
Thu, 7 Nov 2024 06:00:29 +0000 (15:00 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Thu, 7 Nov 2024 08:22:06 +0000 (17:22 +0900)
during get client under pointer, there was a bug that width and height
used as coordinate.
e_client_transform_core_input_inv_transform is function for transform
coordinates, but input value of ir_w, ir_h is length of rectangle.

To fix it, Added position into length value to makes length to position.
After the transformation is done, subtract the position to make as
length value.

Change-Id: Idc8420e1e78de1ecdbf5035fb0eb5abccf3c98ac

src/bin/core/e_client.c

index f960a3ce02021125eac6e05e6594ad04d10cc5a2..b6f88aff39c15656170671a8d3b5d87980b458ce 100644 (file)
@@ -1910,8 +1910,12 @@ _e_client_under_pointer_input_helper(E_Desk *desk, int x, int y)
 
                   if (e_client_transform_core_enable_get(cec))
                     {
+                       int ir_xw = ir_x + ir_w;
+                       int ir_yh = ir_y + ir_h;
                        e_client_transform_core_input_inv_transform(cec, ir_x, ir_y, &ir_x, &ir_y);
-                       e_client_transform_core_input_inv_transform(cec, ir_w, ir_h, &ir_w, &ir_h);
+                       e_client_transform_core_input_inv_transform(cec, ir_xw, ir_yh, &ir_xw, &ir_yh);
+                       ir_w = ir_xw - ir_x;
+                       ir_h = ir_yh - ir_y;
                     }
 
                   if (E_INSIDE(x, y, ir_x, ir_y, ir_w, ir_h))