e_comp_wl_data: set visible value of the drag_client to False when the drag finished. 24/290724/1
authorJunseok Kim <juns.kim@samsung.com>
Thu, 30 Mar 2023 06:31:41 +0000 (15:31 +0900)
committerJunseok Kim <juns.kim@samsung.com>
Fri, 31 Mar 2023 07:50:05 +0000 (16:50 +0900)
Set visible value of the drag client to 0 when the drop finished.

There're many log about show blocked of the drag client after the drop
finished.
It's caused by the visible value of the drag client is 1 even though the
drag client didn't draw their surface after the drop finished.
To solve this problem, we set the visible value of the drag client to 0
when the drop finished.

Change-Id: I6994de1e5f11a3d1e1d2922948f43f10fd8d1753

src/bin/e_comp_wl_data.c

index af626bcb577a23dec29b58a75be353c99f84f36c..673c8e868726697aaea2a9ed57e599593d9f6dd9 100644 (file)
@@ -649,9 +649,19 @@ _e_comp_wl_data_device_drag_finished(E_Drag *drag, int dropped)
      e_zoomap_child_set(o, NULL);
    evas_object_hide(o);
    evas_object_pass_events_set(o, 1);
+
    if (e_comp_wl->drag != drag) return;
+
    e_comp_wl->drag = NULL;
+
+   if (e_comp_wl->drag_client->visible)
+     {
+        e_comp_wl->drag_client->changes.visible = 1;
+        e_comp_wl->drag_client->visible = 0;
+        EC_CHANGED(e_comp_wl->drag_client);
+     }
    e_comp_wl->drag_client = NULL;
+
    e_comp_override_del();
    if (e_comp_wl->selection.target && (!dropped))
      {