Changeset 150107 in webkit
- Timestamp:
- May 15, 2013, 2:43:18 AM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
dom/Clipboard.h (modified) (1 diff)
-
platform/mac/ClipboardMac.h (modified) (2 diffs)
-
platform/mac/ClipboardMac.mm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r150106 r150107 1 2013-05-15 Darin Adler <darin@apple.com> 2 3 [Mac] Make Clipboard::createDragImage non-virtual 4 https://bugs.webkit.org/show_bug.cgi?id=116136 5 6 Reviewed by Benjamin Poulain. 7 8 * dom/Clipboard.h: Made createDragImage non-virtual for non-legacy. 9 10 * platform/mac/ClipboardMac.h: Removed frame argument from create function 11 and constructor. Removed createDragImage and dragNSImage. Removed m_frame 12 data member. 13 14 * platform/mac/ClipboardMac.mm: 15 (WebCore::ClipboardMac::ClipboardMac): Removed frame argument and code 16 to initialize m_frame. 17 (WebCore::Clipboard::createDragImage): Merged the createDragImage and 18 dragNSImage functions, since they were the same thing. Changed code to get 19 the frame from the drag image element. Made the createDragImage function 20 a Clipboard member instead of ClipboardMac. 21 1 22 2013-05-15 Patrick Gansterer <paroga@webkit.org> 2 23 -
trunk/Source/WebCore/dom/Clipboard.h
r150100 r150107 95 95 LEGACY_VIRTUAL void setDragImageElement(Node*, const IntPoint&) LEGACY_PURE; 96 96 97 virtual DragImageRef createDragImage(IntPoint& dragLocation) const = 0;97 LEGACY_VIRTUAL DragImageRef createDragImage(IntPoint& dragLocation) const LEGACY_PURE; 98 98 #if ENABLE(DRAG_SUPPORT) 99 99 virtual void declareAndWriteDragImage(Element*, const KURL&, const String& title, Frame*) = 0; -
trunk/Source/WebCore/platform/mac/ClipboardMac.h
r150100 r150107 47 47 }; 48 48 49 static PassRefPtr<ClipboardMac> create(ClipboardType clipboardType, const String& pasteboardName, ClipboardAccessPolicy policy, ClipboardContents clipboardContents, Frame* frame)49 static PassRefPtr<ClipboardMac> create(ClipboardType clipboardType, const String& pasteboardName, ClipboardAccessPolicy policy, ClipboardContents clipboardContents, Frame*) 50 50 { 51 return adoptRef(new ClipboardMac(clipboardType, pasteboardName, policy, clipboardContents , frame));51 return adoptRef(new ClipboardMac(clipboardType, pasteboardName, policy, clipboardContents)); 52 52 } 53 53 54 54 virtual ~ClipboardMac(); 55 55 56 virtual DragImageRef createDragImage(IntPoint& dragLoc) const;57 56 #if ENABLE(DRAG_SUPPORT) 58 57 virtual void declareAndWriteDragImage(Element*, const KURL&, const String& title, Frame*); … … 60 59 61 60 // Methods for getting info in Cocoa's type system 62 NSImage *dragNSImage(NSPoint&) const; // loc converted from dragLoc, based on whole image size63 61 const String& pasteboardName() { return m_pasteboardName; } 64 62 65 63 private: 66 ClipboardMac(ClipboardType, const String& pasteboardName, ClipboardAccessPolicy, ClipboardContents , Frame*);64 ClipboardMac(ClipboardType, const String& pasteboardName, ClipboardAccessPolicy, ClipboardContents); 67 65 68 66 String m_pasteboardName; 69 67 int m_changeCount; 70 Frame* m_frame; // used on the source side to generate dragging images71 68 }; 72 69 -
trunk/Source/WebCore/platform/mac/ClipboardMac.mm
r150100 r150107 56 56 #endif 57 57 58 ClipboardMac::ClipboardMac(ClipboardType clipboardType, const String& pasteboardName, ClipboardAccessPolicy policy, ClipboardContents clipboardContents , Frame *frame)58 ClipboardMac::ClipboardMac(ClipboardType clipboardType, const String& pasteboardName, ClipboardAccessPolicy policy, ClipboardContents clipboardContents) 59 59 : Clipboard(policy, clipboardType, Pasteboard::create(pasteboardName), clipboardContents == DragAndDropFiles) 60 60 , m_pasteboardName(pasteboardName) 61 , m_frame(frame)62 61 { 63 62 m_changeCount = platformStrategies()->pasteboardStrategy()->changeCount(m_pasteboardName); … … 77 76 #endif // ENABLE(DRAG_SUPPORT) 78 77 79 DragImageRef ClipboardMac::createDragImage(IntPoint& loc) const 80 { 81 NSPoint nsloc = NSMakePoint(loc.x(), loc.y()); 82 DragImageRef result = dragNSImage(nsloc); 83 loc = (IntPoint)nsloc; 84 return result; 85 } 86 87 NSImage *ClipboardMac::dragNSImage(NSPoint& loc) const 78 DragImageRef Clipboard::createDragImage(IntPoint& location) const 88 79 { 89 80 NSImage *result = nil; 90 81 if (m_dragImageElement) { 91 if (m_frame) { 82 Document* document = m_dragImageElement->document(); 83 if (Frame* frame = document->frame()) { 92 84 NSRect imageRect; 93 85 NSRect elementRect; 94 result = snapshotDragImage( m_frame, m_dragImageElement.get(), &imageRect, &elementRect);86 result = snapshotDragImage(frame, m_dragImageElement.get(), &imageRect, &elementRect); 95 87 // Client specifies point relative to element, not the whole image, which may include child 96 88 // layers spread out all over the place. 97 loc.x = elementRect.origin.x - imageRect.origin.x + m_dragLoc.x(); 98 loc.y = elementRect.origin.y - imageRect.origin.y + m_dragLoc.y(); 99 loc.y = imageRect.size.height - loc.y; 89 location.setX(elementRect.origin.x - imageRect.origin.x + m_dragLoc.x()); 90 location.setY(imageRect.size.height - (elementRect.origin.y - imageRect.origin.y + m_dragLoc.y())); 100 91 } 101 92 } else if (m_dragImage) { 102 93 result = m_dragImage->image()->getNSImage(); 103 94 104 loc = m_dragLoc;105 loc .y = [result size].height - loc.y;95 location = m_dragLoc; 96 location.setY([result size].height - location.y()); 106 97 } 107 98 return result;
Note:
See TracChangeset
for help on using the changeset viewer.