summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/platforms/xcb/qxcbdrag.cpp6
-rw-r--r--src/plugins/platforms/xcb/qxcbdrag.h2
2 files changed, 7 insertions, 1 deletions
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<xcb_atom_t> drag_types;