e_comp_wl: fix multi touch event is delivered to mouse grabbed surface 79/323779/2
authorJihoon Kim <jihoon48.kim@samsung.com>
Fri, 11 Apr 2025 06:14:04 +0000 (15:14 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 7 May 2025 09:50:32 +0000 (09:50 +0000)
Change-Id: I6744f7a1f4bba926364b4f444f86d15f5a232b41
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/bin/server/e_comp_wl.c

index 602ff360041d9809624575fb0782b413651b6682..6d289c4432763ef8b3030f20cd7a7408192302ce 100644 (file)
@@ -2620,7 +2620,19 @@ _e_comp_wl_zone_send_mouse_button(Ecore_Event_Mouse_Button *ev, Eina_Bool presse
    seat_name = ecore_device_ex_seatname_get(dev);
 
    client_zone = e_seat_zone_get(e_seat_find(seat_name));
-   ec = _e_comp_wl_under_position_input_ec_get(client_zone, ev->x, ev->y);
+
+   if (pressed)
+     {
+        ec = comp_wl->ptr.ec;
+
+        if (dev_class == ECORE_DEVICE_CLASS_TOUCH)
+          {
+             if (comp_wl->touch.pressed == 0)
+               ec = _e_comp_wl_under_position_input_ec_get(client_zone, ev->x, ev->y);
+          }
+     }
+   else
+     ec = comp_wl->ptr.ec;
 
    comp_conf = e_comp_config_get();
    if (comp_conf && comp_conf->input_log_enable)