diff --git a/src/plugins/platforms/xcb/qxcbdrag.cpp b/src/plugins/platforms/xcb/qxcbdrag.cpp index 247b2c991b..1a2de82fd3 100644 --- a/src/plugins/platforms/xcb/qxcbdrag.cpp +++ b/src/plugins/platforms/xcb/qxcbdrag.cpp @@ -484,6 +484,12 @@ void QXcbDrag::move(const QMouseEvent *me) void QXcbDrag::drop(const QMouseEvent *event) { QBasicDrag::drop(event); + + if (heartbeat != -1) { + killTimer(heartbeat); + heartbeat = -1; + } + if (!current_target) return; diff --git a/src/plugins/platforms/xcb/qxcbdrag.h b/src/plugins/platforms/xcb/qxcbdrag.h index ef277e7eec..99c1e2d78f 100644 --- a/src/plugins/platforms/xcb/qxcbdrag.h +++ b/src/plugins/platforms/xcb/qxcbdrag.h @@ -143,7 +143,7 @@ private: xcb_window_t current_proxy_target; QXcbScreen *current_screen; - + // timer used when target wants "continuous" move messages (eg. scroll) int heartbeat; QVector drag_types;