diff options
Diffstat (limited to 'src/gui/kernel/qsimpledrag.cpp')
-rw-r--r-- | src/gui/kernel/qsimpledrag.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gui/kernel/qsimpledrag.cpp b/src/gui/kernel/qsimpledrag.cpp index a02efd5a7a..c0a2b1b0b4 100644 --- a/src/gui/kernel/qsimpledrag.cpp +++ b/src/gui/kernel/qsimpledrag.cpp @@ -160,6 +160,7 @@ bool QBasicDrag::eventFilter(QObject *o, QEvent *e) } case QEvent::MouseButtonRelease: { + QPointer<QObject> objGuard(o); disableEventFilter(); if (canDrop()) { QPoint nativePosition = getNativeMousePos(e, m_drag_icon_window); @@ -169,6 +170,8 @@ bool QBasicDrag::eventFilter(QObject *o, QEvent *e) cancel(); } exitDndEventLoop(); + if (!objGuard) + return true; // If a QShapedPixmapWindow (drag feedback) is being dragged along, the // mouse event's localPos() will be relative to that, which is useless. |