[PATCH wayland] data-device: Don't fake an attach event on drag icon surface

Ander Conselvan de Oliveira ander.conselvan.de.oliveira at intel.com
Thu Oct 11 04:05:37 PDT 2012


Emit a new drag icon signal instead and let the compositor handle the
unmapping of the icon surface.
---
 src/data-device.c |   12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/src/data-device.c b/src/data-device.c
index 82020af..363a90d 100644
--- a/src/data-device.c
+++ b/src/data-device.c
@@ -228,16 +228,9 @@ drag_grab_motion(struct wl_pointer_grab *grab,
 static void
 data_device_end_drag_grab(struct wl_seat *seat)
 {
-	struct wl_resource *surface_resource;
-	struct wl_surface_interface *implementation;
-
 	if (seat->drag_surface) {
-		surface_resource = &seat->drag_surface->resource;
-		implementation = (struct wl_surface_interface *)
-			surface_resource->object.implementation;
-
-		implementation->attach(surface_resource->client,
-				       surface_resource, NULL, 0, 0);
+		seat->drag_surface = NULL;
+		wl_signal_emit(&seat->drag_icon_signal, NULL);
 		wl_list_remove(&seat->drag_icon_listener.link);
 	}
 
@@ -247,7 +240,6 @@ data_device_end_drag_grab(struct wl_seat *seat)
 	wl_pointer_end_grab(seat->pointer);
 
 	seat->drag_data_source = NULL;
-	seat->drag_surface = NULL;
 	seat->drag_client = NULL;
 }
 
-- 
1.7.9.5



More information about the wayland-devel mailing list