diff --git a/src/wayland/seat.cpp b/src/wayland/seat.cpp index e904d4341f..582dd56aa5 100644 --- a/src/wayland/seat.cpp +++ b/src/wayland/seat.cpp @@ -732,7 +732,11 @@ void SeatInterface::notifyPointerButton(quint32 button, PointerButtonState state // not our drag button - ignore return; } - d->pointer->sendButton(button, state, serial); + + SurfaceInterface *focusedSurface = focusedPointerSurface(); + if (focusedSurface && !d->dragInhibitsPointer(focusedSurface)) { + d->pointer->sendButton(button, state, serial); + } d->endDrag(); return; } @@ -746,6 +750,10 @@ void SeatInterface::notifyPointerFrame() if (!d->pointer) { return; } + SurfaceInterface *focusedSurface = focusedPointerSurface(); + if (focusedSurface && d->dragInhibitsPointer(focusedSurface)) { + return; + } d->pointer->sendFrame(); }