- Revision
- 150107
- Author
- [email protected]
- Date
- 2013-05-15 02:43:18 -0700 (Wed, 15 May 2013)
Log Message
[Mac] Make Clipboard::createDragImage non-virtual
https://bugs.webkit.org/show_bug.cgi?id=116136
Reviewed by Benjamin Poulain.
* dom/Clipboard.h: Made createDragImage non-virtual for non-legacy.
* platform/mac/ClipboardMac.h: Removed frame argument from create function
and constructor. Removed createDragImage and dragNSImage. Removed m_frame
data member.
* platform/mac/ClipboardMac.mm:
(WebCore::ClipboardMac::ClipboardMac): Removed frame argument and code
to initialize m_frame.
(WebCore::Clipboard::createDragImage): Merged the createDragImage and
dragNSImage functions, since they were the same thing. Changed code to get
the frame from the drag image element. Made the createDragImage function
a Clipboard member instead of ClipboardMac.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (150106 => 150107)
--- trunk/Source/WebCore/ChangeLog 2013-05-15 09:03:56 UTC (rev 150106)
+++ trunk/Source/WebCore/ChangeLog 2013-05-15 09:43:18 UTC (rev 150107)
@@ -1,3 +1,24 @@
+2013-05-15 Darin Adler <[email protected]>
+
+ [Mac] Make Clipboard::createDragImage non-virtual
+ https://bugs.webkit.org/show_bug.cgi?id=116136
+
+ Reviewed by Benjamin Poulain.
+
+ * dom/Clipboard.h: Made createDragImage non-virtual for non-legacy.
+
+ * platform/mac/ClipboardMac.h: Removed frame argument from create function
+ and constructor. Removed createDragImage and dragNSImage. Removed m_frame
+ data member.
+
+ * platform/mac/ClipboardMac.mm:
+ (WebCore::ClipboardMac::ClipboardMac): Removed frame argument and code
+ to initialize m_frame.
+ (WebCore::Clipboard::createDragImage): Merged the createDragImage and
+ dragNSImage functions, since they were the same thing. Changed code to get
+ the frame from the drag image element. Made the createDragImage function
+ a Clipboard member instead of ClipboardMac.
+
2013-05-15 Patrick Gansterer <[email protected]>
[WINCE] Fix calls to GlyphPage::setGlyphDataForIndex()
Modified: trunk/Source/WebCore/dom/Clipboard.h (150106 => 150107)
--- trunk/Source/WebCore/dom/Clipboard.h 2013-05-15 09:03:56 UTC (rev 150106)
+++ trunk/Source/WebCore/dom/Clipboard.h 2013-05-15 09:43:18 UTC (rev 150107)
@@ -94,7 +94,7 @@
Node* dragImageElement() const { return m_dragImageElement.get(); }
LEGACY_VIRTUAL void setDragImageElement(Node*, const IntPoint&) LEGACY_PURE;
- virtual DragImageRef createDragImage(IntPoint& dragLocation) const = 0;
+ LEGACY_VIRTUAL DragImageRef createDragImage(IntPoint& dragLocation) const LEGACY_PURE;
#if ENABLE(DRAG_SUPPORT)
virtual void declareAndWriteDragImage(Element*, const KURL&, const String& title, Frame*) = 0;
#endif
Modified: trunk/Source/WebCore/platform/mac/ClipboardMac.h (150106 => 150107)
--- trunk/Source/WebCore/platform/mac/ClipboardMac.h 2013-05-15 09:03:56 UTC (rev 150106)
+++ trunk/Source/WebCore/platform/mac/ClipboardMac.h 2013-05-15 09:43:18 UTC (rev 150107)
@@ -46,28 +46,25 @@
CopyAndPasteGeneric
};
- static PassRefPtr<ClipboardMac> create(ClipboardType clipboardType, const String& pasteboardName, ClipboardAccessPolicy policy, ClipboardContents clipboardContents, Frame* frame)
+ static PassRefPtr<ClipboardMac> create(ClipboardType clipboardType, const String& pasteboardName, ClipboardAccessPolicy policy, ClipboardContents clipboardContents, Frame*)
{
- return adoptRef(new ClipboardMac(clipboardType, pasteboardName, policy, clipboardContents, frame));
+ return adoptRef(new ClipboardMac(clipboardType, pasteboardName, policy, clipboardContents));
}
virtual ~ClipboardMac();
- virtual DragImageRef createDragImage(IntPoint& dragLoc) const;
#if ENABLE(DRAG_SUPPORT)
virtual void declareAndWriteDragImage(Element*, const KURL&, const String& title, Frame*);
#endif
// Methods for getting info in Cocoa's type system
- NSImage *dragNSImage(NSPoint&) const; // loc converted from dragLoc, based on whole image size
const String& pasteboardName() { return m_pasteboardName; }
private:
- ClipboardMac(ClipboardType, const String& pasteboardName, ClipboardAccessPolicy, ClipboardContents, Frame*);
+ ClipboardMac(ClipboardType, const String& pasteboardName, ClipboardAccessPolicy, ClipboardContents);
String m_pasteboardName;
int m_changeCount;
- Frame* m_frame; // used on the source side to generate dragging images
};
}
Modified: trunk/Source/WebCore/platform/mac/ClipboardMac.mm (150106 => 150107)
--- trunk/Source/WebCore/platform/mac/ClipboardMac.mm 2013-05-15 09:03:56 UTC (rev 150106)
+++ trunk/Source/WebCore/platform/mac/ClipboardMac.mm 2013-05-15 09:43:18 UTC (rev 150107)
@@ -55,10 +55,9 @@
}
#endif
-ClipboardMac::ClipboardMac(ClipboardType clipboardType, const String& pasteboardName, ClipboardAccessPolicy policy, ClipboardContents clipboardContents, Frame *frame)
+ClipboardMac::ClipboardMac(ClipboardType clipboardType, const String& pasteboardName, ClipboardAccessPolicy policy, ClipboardContents clipboardContents)
: Clipboard(policy, clipboardType, Pasteboard::create(pasteboardName), clipboardContents == DragAndDropFiles)
, m_pasteboardName(pasteboardName)
- , m_frame(frame)
{
m_changeCount = platformStrategies()->pasteboardStrategy()->changeCount(m_pasteboardName);
}
@@ -76,33 +75,25 @@
}
#endif // ENABLE(DRAG_SUPPORT)
-DragImageRef ClipboardMac::createDragImage(IntPoint& loc) const
+DragImageRef Clipboard::createDragImage(IntPoint& location) const
{
- NSPoint nsloc = NSMakePoint(loc.x(), loc.y());
- DragImageRef result = dragNSImage(nsloc);
- loc = (IntPoint)nsloc;
- return result;
-}
-
-NSImage *ClipboardMac::dragNSImage(NSPoint& loc) const
-{
NSImage *result = nil;
if (m_dragImageElement) {
- if (m_frame) {
+ Document* document = m_dragImageElement->document();
+ if (Frame* frame = document->frame()) {
NSRect imageRect;
NSRect elementRect;
- result = snapshotDragImage(m_frame, m_dragImageElement.get(), &imageRect, &elementRect);
+ result = snapshotDragImage(frame, m_dragImageElement.get(), &imageRect, &elementRect);
// Client specifies point relative to element, not the whole image, which may include child
// layers spread out all over the place.
- loc.x = elementRect.origin.x - imageRect.origin.x + m_dragLoc.x();
- loc.y = elementRect.origin.y - imageRect.origin.y + m_dragLoc.y();
- loc.y = imageRect.size.height - loc.y;
+ location.setX(elementRect.origin.x - imageRect.origin.x + m_dragLoc.x());
+ location.setY(imageRect.size.height - (elementRect.origin.y - imageRect.origin.y + m_dragLoc.y()));
}
} else if (m_dragImage) {
result = m_dragImage->image()->getNSImage();
- loc = m_dragLoc;
- loc.y = [result size].height - loc.y;
+ location = m_dragLoc;
+ location.setY([result size].height - location.y());
}
return result;
}