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.
This commit is contained in:
parent
624d8f2293
commit
40e44ab18d
@ -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…
Reference in New Issue
Block a user