ds_seat_client_get_wl_client(drag->seat_client)))
return;
- drag->source->accepted = false;
+ if (drag->source) {
+ drag->source->accepted = false;
- data_device = data_device_for_seat_client(drag->data_device->manager,
- focused_client);
- if (!data_device)
- return;
+ data_device = data_device_for_seat_client(drag->data_device->manager,
+ focused_client);
+ if (!data_device)
+ return;
- if (data_device_send_drag_enter(data_device, drag->source,
- surface_resource, sx, sy)) {
- drag->focused_surface = surface;
- drag_set_focus_client(drag, focused_client);
+ if (data_device_send_drag_enter(data_device, drag->source,
+ surface_resource, sx, sy)) {
+ return;
+ }
}
+
+ drag->focused_surface = surface;
+ drag_set_focus_client(drag, focused_client);
}
static void