e_client: Makes consistency of dragging position 58/320058/1
authorJunseok Kim <juns.kim@samsung.com>
Thu, 7 Nov 2024 05:55:05 +0000 (14:55 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Thu, 7 Nov 2024 08:22:06 +0000 (17:22 +0900)
There was a problem that drag enter is not delivered to clients using
input rect when dragging.

The coordinates of the input rects are stored as the client's surface
local coordinates.
And the position of the pointer from ecore_event based on coordinates of
canvas.
During dragging, there was a inconsistency in coordinates while using
these two values directly, and It cause issue that did not deliver the
drag enter event.

To fix this issue, Make consistency of the coordinates between input
rect and pointer position by adding the position of the surface into
input rect position.

Change-Id: Ia4d2c28bf037d3c7c02986b29b72539b993f947b

src/bin/core/e_client.c

index 0203e22e13db31320982bc2c8853e3f0e9457b12..f960a3ce02021125eac6e05e6594ad04d10cc5a2 100644 (file)
@@ -1903,10 +1903,10 @@ _e_client_under_pointer_input_helper(E_Desk *desk, int x, int y)
           {
              EINA_LIST_FREE(list, rect)
                {
-                  ir_x = rect->x;
-                  ir_y = rect->y;
-                  ir_w = rect->w;
-                  ir_h = rect->h;
+                  ir_x = cx + rect->x;
+                  ir_y = cy + rect->y;
+                  ir_w = cx + rect->w;
+                  ir_h = cy + rect->h;
 
                   if (e_client_transform_core_enable_get(cec))
                     {