diff options
Diffstat (limited to 'Source/WebKit/chromium/src/DragClientImpl.cpp')
-rw-r--r-- | Source/WebKit/chromium/src/DragClientImpl.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Source/WebKit/chromium/src/DragClientImpl.cpp b/Source/WebKit/chromium/src/DragClientImpl.cpp index a6fb0bd33..3974e7ad3 100644 --- a/Source/WebKit/chromium/src/DragClientImpl.cpp +++ b/Source/WebKit/chromium/src/DragClientImpl.cpp @@ -87,7 +87,13 @@ void DragClientImpl::startDrag(DragImageRef dragImage, IntSize offsetSize(eventPos - dragImageOrigin); WebPoint offsetPoint(offsetSize.width(), offsetSize.height()); - m_webView->startDragging(frame, dragData, static_cast<WebDragOperationsMask>(dragOperationMask), dragImage ? WebImage(*dragImage) : WebImage(), offsetPoint); + + if (dragImage && dragImage->bitmap && m_webView->deviceScaleFactor() != dragImage->resolutionScale) { + ASSERT(dragImage->resolutionScale > 0); + float scale = m_webView->deviceScaleFactor() / dragImage->resolutionScale; + dragImage = scaleDragImage(dragImage, WebCore::FloatSize(scale, scale)); + } + m_webView->startDragging(frame, dragData, static_cast<WebDragOperationsMask>(dragOperationMask), (dragImage && dragImage->bitmap) ? WebImage(*dragImage->bitmap) : WebImage(), offsetPoint); } void DragClientImpl::dragControllerDestroyed() |