diff -upr a/src/client/qwaylanddatadevice.cpp b/src/client/qwaylanddatadevice.cpp --- a/src/client/qwaylanddatadevice.cpp 2023-07-07 09:29:08.000000000 -0300 +++ b/src/client/qwaylanddatadevice.cpp 2023-08-14 13:37:25.868922555 -0300 @@ -97,6 +97,9 @@ bool QWaylandDataDevice::startDrag(QMime connect(m_dragSource.data(), &QWaylandDataSource::cancelled, this, &QWaylandDataDevice::dragSourceCancelled); connect(m_dragSource.data(), &QWaylandDataSource::dndResponseUpdated, this, [this](bool accepted, Qt::DropAction action) { auto drag = static_cast(QGuiApplicationPrivate::platformIntegration()->drag()); + if (!drag->currentDrag()) { + return; + } // in old versions drop action is not set, so we guess if (m_dragSource->version() < 3) { drag->setResponse(accepted); diff -upr a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp --- a/src/client/qwaylandinputdevice.cpp 2023-07-07 09:29:08.000000000 -0300 +++ b/src/client/qwaylandinputdevice.cpp 2023-08-14 13:41:36.696096060 -0300 @@ -707,8 +707,8 @@ public: void QWaylandInputDevice::Pointer::pointer_leave(uint32_t time, struct wl_surface *surface) { - releaseButtons(); invalidateFocus(); + mButtons = Qt::NoButton; mParent->mTime = time; @@ -823,8 +823,6 @@ void QWaylandInputDevice::Pointer::point default: return; // invalid button number (as far as Qt is concerned) } - mLastButton = qt_button; - if (state) mButtons |= qt_button; else @@ -863,13 +861,10 @@ void QWaylandInputDevice::Pointer::inval void QWaylandInputDevice::Pointer::releaseButtons() { - if (mButtons == Qt::NoButton) - return; - mButtons = Qt::NoButton; if (auto *window = focusWindow()) { - ReleaseEvent e(focusWindow(), mParent->mTime, mSurfacePos, mGlobalPos, mButtons, mLastButton, mParent->modifiers()); + ReleaseEvent e(focusWindow(), mParent->mTime, mSurfacePos, mGlobalPos, mButtons, Qt::NoButton, mParent->modifiers()); window->handleMouse(mParent, e); } } diff -upr a/src/client/qwaylandinputdevice_p.h b/src/client/qwaylandinputdevice_p.h --- a/src/client/qwaylandinputdevice_p.h 2023-07-07 09:29:08.000000000 -0300 +++ b/src/client/qwaylandinputdevice_p.h 2023-08-14 13:42:30.081769577 -0300 @@ -333,7 +333,6 @@ public: QPointF mSurfacePos; QPointF mGlobalPos; Qt::MouseButtons mButtons = Qt::NoButton; - Qt::MouseButton mLastButton = Qt::NoButton; #if QT_CONFIG(cursor) wl_buffer *mCursorBuffer = nullptr; Qt::CursorShape mCursorShape = Qt::BitmapCursor;