data-device: Fix dnd regression from weston_seat rewrite

We had a drag_surface in wl_seat and weston_seat which confused me during
the rewrite.
dev
Kristian Høgsberg 12 years ago
parent 624d8f2293
commit 40e44ab18d
  1. 10
      src/data-device.c

@ -233,16 +233,16 @@ weston_seat_update_drag_surface(struct weston_seat *seat, int dx, int dy)
{ {
int surface_changed = 0; int surface_changed = 0;
if (!seat->drag_surface && !seat->drag_surface) if (!seat->drag_surface && !seat->next_drag_surface)
return; return;
if (seat->drag_surface && seat->drag_surface && if (seat->drag_surface && seat->next_drag_surface &&
(&seat->drag_surface->surface.resource != (&seat->drag_surface->surface.resource !=
&seat->next_drag_surface->resource)) &seat->next_drag_surface->resource))
/* between calls to this funcion we got a new drag_surface */ /* between calls to this funcion we got a new drag_surface */
surface_changed = 1; surface_changed = 1;
if (!seat->drag_surface || surface_changed) { if (!seat->next_drag_surface || surface_changed) {
device_release_drag_surface(seat); device_release_drag_surface(seat);
if (!surface_changed) if (!surface_changed)
return; return;
@ -250,7 +250,7 @@ weston_seat_update_drag_surface(struct weston_seat *seat, int dx, int dy)
if (!seat->drag_surface || surface_changed) { if (!seat->drag_surface || surface_changed) {
struct weston_surface *surface = struct weston_surface *surface =
(struct weston_surface *) seat->drag_surface; (struct weston_surface *) seat->next_drag_surface;
if (!device_setup_new_drag_surface(seat, surface)) if (!device_setup_new_drag_surface(seat, surface))
return; return;
} }
@ -348,7 +348,7 @@ static void
data_device_end_drag_grab(struct weston_seat *seat) data_device_end_drag_grab(struct weston_seat *seat)
{ {
if (seat->drag_surface) { if (seat->drag_surface) {
seat->drag_surface = NULL; seat->next_drag_surface = NULL;
weston_seat_update_drag_surface(seat, 0, 0); weston_seat_update_drag_surface(seat, 0, 0);
wl_list_remove(&seat->drag_icon_listener.link); wl_list_remove(&seat->drag_icon_listener.link);
} }

Loading…
Cancel
Save