From 95151bfc8e511315525f778abb843fa83f8bee29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Tue, 6 Aug 2013 10:31:12 -0700 Subject: [PATCH] data-device.c: Handle failure to allocate offer in weston_drag_set_focus If we fail to allocate and send the offer, don't send the drag enter and don't set the drag focus so we don't send motion events or leave. --- src/data-device.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/data-device.c b/src/data-device.c index 353abb6ed..f04b504b7 100644 --- a/src/data-device.c +++ b/src/data-device.c @@ -234,8 +234,11 @@ weston_drag_set_focus(struct weston_drag *drag, struct weston_surface *surface, display = wl_client_get_display(wl_resource_get_client(resource)); serial = wl_display_next_serial(display); - if (drag->data_source) + if (drag->data_source) { offer = wl_data_source_send_offer(drag->data_source, resource); + if (offer == NULL) + return; + } wl_data_device_send_enter(resource, serial, surface->resource, sx, sy, offer);