summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/WebKit/qt/WebCoreSupport/DragClientQt.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/Source/WebKit/qt/WebCoreSupport/DragClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/DragClientQt.cpp
index 6cc5b315c..479c79cd2 100644
--- a/Source/WebKit/qt/WebCoreSupport/DragClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/DragClientQt.cpp
@@ -90,7 +90,7 @@ void DragClientQt::willPerformDragSourceAction(DragSourceAction, const IntPoint&
{
}
-void DragClientQt::startDrag(DragImageRef dragImage, const IntPoint&, const IntPoint&, Clipboard* clipboard, Frame* frame, bool)
+void DragClientQt::startDrag(DragImageRef dragImage, const IntPoint& dragImageOrigin, const IntPoint& eventPos, Clipboard* clipboard, Frame* frame, bool)
{
#ifndef QT_NO_DRAGANDDROP
QMimeData* clipboardData = clipboard->pasteboard().clipboardData();
@@ -98,9 +98,10 @@ void DragClientQt::startDrag(DragImageRef dragImage, const IntPoint&, const IntP
QObject* view = m_chromeClient->platformPageClient()->ownerWidget();
if (view) {
QDrag* drag = new QDrag(view);
- if (dragImage)
+ if (dragImage) {
drag->setPixmap(*dragImage);
- else if (clipboardData && clipboardData->hasImage())
+ drag->setHotSpot(IntPoint(eventPos - dragImageOrigin));
+ } else if (clipboardData && clipboardData->hasImage())
drag->setPixmap(qvariant_cast<QPixmap>(clipboardData->imageData()));
DragOperation dragOperationMask = clipboard->sourceOperation();
drag->setMimeData(clipboardData);