Index: Source/WebKit/chromium/src/DragClientImpl.cpp |
diff --git a/Source/WebKit/chromium/src/DragClientImpl.cpp b/Source/WebKit/chromium/src/DragClientImpl.cpp |
index 09d01de9ec53df4beb9dd03834fc8c44a165e240..9cf856b97a21ba9a0f5a0156a0b1048ff3af2e7d 100644 |
--- a/Source/WebKit/chromium/src/DragClientImpl.cpp |
+++ b/Source/WebKit/chromium/src/DragClientImpl.cpp |
@@ -33,13 +33,18 @@ |
#include "WebViewClient.h" |
#include "WebViewImpl.h" |
#include "core/page/Frame.h" |
+#include "core/platform/DragImage.h" |
#include "core/platform/chromium/ChromiumDataObject.h" |
#include "core/platform/chromium/ClipboardChromium.h" |
-#include "core/platform/chromium/DragImageRef.h" |
+#include "core/platform/graphics/IntSize.h" |
#include "core/platform/graphics/skia/NativeImageSkia.h" |
#include "public/platform/WebCommon.h" |
#include "public/platform/WebDragData.h" |
#include "public/platform/WebImage.h" |
+#include "public/platform/WebPoint.h" |
+#include "public/web/WebDragOperation.h" |
+#include "wtf/Assertions.h" |
+#include "wtf/RefPtr.h" |
using namespace WebCore; |
@@ -54,7 +59,7 @@ DragDestinationAction DragClientImpl::actionMaskForDrag(DragData*) |
DragDestinationActionDHTML | DragDestinationActionEdit); |
} |
-void DragClientImpl::startDrag(DragImageRef dragImage, |
+void DragClientImpl::startDrag(DragImage* dragImage, |
const IntPoint& dragImageOrigin, |
const IntPoint& eventPos, |
Clipboard* clipboard, |
@@ -65,18 +70,22 @@ void DragClientImpl::startDrag(DragImageRef dragImage, |
RefPtr<Frame> frameProtector = frame; |
WebDragData dragData = static_cast<ClipboardChromium*>(clipboard)->dataObject(); |
- |
- DragOperation dragOperationMask = clipboard->sourceOperation(); |
- |
+ WebDragOperationsMask dragOperationMask = static_cast<WebDragOperationsMask>(clipboard->sourceOperation()); |
+ WebImage image; |
IntSize offsetSize(eventPos - dragImageOrigin); |
WebPoint offsetPoint(offsetSize.width(), offsetSize.height()); |
- 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)); |
+ if (dragImage) { |
+ float resolutionScale = dragImage->resolutionScale(); |
+ if (m_webView->deviceScaleFactor() != resolutionScale) { |
+ ASSERT(resolutionScale > 0); |
+ float scale = m_webView->deviceScaleFactor() / resolutionScale; |
+ dragImage->scale(scale, scale); |
+ } |
+ image = dragImage->bitmap(); |
} |
- m_webView->startDragging(frame, dragData, static_cast<WebDragOperationsMask>(dragOperationMask), (dragImage && dragImage->bitmap) ? WebImage(*dragImage->bitmap) : WebImage(), offsetPoint); |
+ |
+ m_webView->startDragging(frame, dragData, dragOperationMask, image, offsetPoint); |
} |
} // namespace WebKit |