summaryrefslogtreecommitdiffstats
path: root/src/data-device.c
diff options
context:
space:
mode:
authorAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>2012-10-11 14:05:37 +0300
committerKristian Høgsberg <krh@bitplanet.net>2012-10-11 09:46:57 -0400
commit0a27ce1fc2b76b5f50451d7e7c76f97a7056615d (patch)
tree07c453e07062f93442b830e08d94600871f4dbe1 /src/data-device.c
parentprotocol: fix clarification of input region on drags and pointers (diff)
downloadwayland-0a27ce1fc2b76b5f50451d7e7c76f97a7056615d.tar
wayland-0a27ce1fc2b76b5f50451d7e7c76f97a7056615d.tar.gz
wayland-0a27ce1fc2b76b5f50451d7e7c76f97a7056615d.tar.bz2
wayland-0a27ce1fc2b76b5f50451d7e7c76f97a7056615d.tar.lz
wayland-0a27ce1fc2b76b5f50451d7e7c76f97a7056615d.tar.xz
wayland-0a27ce1fc2b76b5f50451d7e7c76f97a7056615d.tar.zst
wayland-0a27ce1fc2b76b5f50451d7e7c76f97a7056615d.zip
data-device: Don't fake an attach event on drag icon surface
Emit a new drag icon signal instead and let the compositor handle the unmapping of the icon surface.
Diffstat (limited to 'src/data-device.c')
-rw-r--r--src/data-device.c12
1 files 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;
}