e_comp_wl_data: check focused resource is dnd icon resource 25/290725/1
authorJunseok Kim <juns.kim@samsung.com>
Thu, 30 Mar 2023 10:08:21 +0000 (19:08 +0900)
committerJunseok Kim <juns.kim@samsung.com>
Fri, 31 Mar 2023 07:50:12 +0000 (16:50 +0900)
Check focused resource is same with DnD icon resource on start_drag request callback.
There was a bug that DnD icon window sometimes didn't appear.
It caused by focus set to the DnD icon window before receive start_drag request by timing issue.
Then the source window lose their focus, finally start_drag request fail.

For fix this issue, check the icon_resource is focused and continue the callback.

Change-Id: Ifb9c64df0123102f7cb925ce19c9902111318654

src/bin/e_comp_wl_data.c

index 673c8e868726697aaea2a9ed57e599593d9f6dd9..de96ac6878ebd1b36982a0b2d52a122cda361dd9 100644 (file)
@@ -707,7 +707,10 @@ _e_comp_wl_data_device_cb_drag_start(struct wl_client *client, struct wl_resourc
 
    DBG("Data Device Drag Start");
 
-   if ((e_comp_wl->kbd.focus) && (e_comp_wl->kbd.focus != origin_resource)) return;
+   if ((e_comp_wl->kbd.focus) &&
+       (e_comp_wl->kbd.focus != origin_resource) &&
+       (e_comp_wl->kbd.focus != icon_resource))
+     return;
 
    if (!(source = wl_resource_get_user_data(source_resource))) return;
    e_comp_wl->drag_source = source;