diff --git a/src/wayland/seat.cpp b/src/wayland/seat.cpp index 1b854d7993..6a15964bd3 100644 --- a/src/wayland/seat.cpp +++ b/src/wayland/seat.cpp @@ -1352,6 +1352,10 @@ void SeatInterface::setPrimarySelection(AbstractDataSource *selection) void SeatInterface::startDrag(AbstractDataSource *dragSource, SurfaceInterface *originSurface, int dragSerial, DragAndDropIcon *dragIcon) { + if (d->drag.mode != SeatInterfacePrivate::Drag::Mode::None) { + return; + } + if (hasImplicitPointerGrab(dragSerial)) { d->drag.mode = SeatInterfacePrivate::Drag::Mode::Pointer; d->drag.transformation = d->globalPointer.focus.transformation;