wayland: Send dnd_cancelled to source before data_device.leave to target

Otherwise it is harder for clients to detect an actual cancellation when
dragging to itself.
wilder/Plasma/6.2
David Edmundson 2 years ago
parent 856925bcc3
commit df60eef0db
  1. 8
      src/wayland/seat.cpp

@ -255,14 +255,14 @@ void SeatInterfacePrivate::registerPrimarySelectionDevice(PrimarySelectionDevice
void SeatInterfacePrivate::cancelDrag() void SeatInterfacePrivate::cancelDrag()
{ {
if (drag.target) {
drag.target->updateDragTarget(nullptr, 0);
drag.target = nullptr;
}
QObject::disconnect(drag.dragSourceDestroyConnection); QObject::disconnect(drag.dragSourceDestroyConnection);
if (drag.source) { if (drag.source) {
drag.source->dndCancelled(); drag.source->dndCancelled();
} }
if (drag.target) {
drag.target->updateDragTarget(nullptr, 0);
drag.target = nullptr;
}
drag = Drag(); drag = Drag();
Q_EMIT q->dragSurfaceChanged(); Q_EMIT q->dragSurfaceChanged();
Q_EMIT q->dragEnded(); Q_EMIT q->dragEnded();

Loading…
Cancel
Save