Title: [150107] trunk/Source/WebCore
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;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to