⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 150107 in webkit


Ignore:
Timestamp:
May 15, 2013, 2:43:18 AM (13 years ago)
Author:
Darin Adler
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.

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r150106 r150107  
     12013-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
    1222013-05-15  Patrick Gansterer  <paroga@webkit.org>
    223
  • trunk/Source/WebCore/dom/Clipboard.h

    r150100 r150107  
    9595        LEGACY_VIRTUAL void setDragImageElement(Node*, const IntPoint&) LEGACY_PURE;
    9696       
    97         virtual DragImageRef createDragImage(IntPoint& dragLocation) const = 0;
     97        LEGACY_VIRTUAL DragImageRef createDragImage(IntPoint& dragLocation) const LEGACY_PURE;
    9898#if ENABLE(DRAG_SUPPORT)
    9999        virtual void declareAndWriteDragImage(Element*, const KURL&, const String& title, Frame*) = 0;
  • trunk/Source/WebCore/platform/mac/ClipboardMac.h

    r150100 r150107  
    4747    };
    4848
    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*)
    5050    {
    51         return adoptRef(new ClipboardMac(clipboardType, pasteboardName, policy, clipboardContents, frame));
     51        return adoptRef(new ClipboardMac(clipboardType, pasteboardName, policy, clipboardContents));
    5252    }
    5353
    5454    virtual ~ClipboardMac();
    5555
    56     virtual DragImageRef createDragImage(IntPoint& dragLoc) const;
    5756#if ENABLE(DRAG_SUPPORT)
    5857    virtual void declareAndWriteDragImage(Element*, const KURL&, const String& title, Frame*);
    … …  
    6059   
    6160    // Methods for getting info in Cocoa's type system
    62     NSImage *dragNSImage(NSPoint&) const; // loc converted from dragLoc, based on whole image size
    6361    const String& pasteboardName() { return m_pasteboardName; }
    6462
    6563private:
    66     ClipboardMac(ClipboardType, const String& pasteboardName, ClipboardAccessPolicy, ClipboardContents, Frame*);
     64    ClipboardMac(ClipboardType, const String& pasteboardName, ClipboardAccessPolicy, ClipboardContents);
    6765
    6866    String m_pasteboardName;
    6967    int m_changeCount;
    70     Frame* m_frame; // used on the source side to generate dragging images
    7168};
    7269
  • trunk/Source/WebCore/platform/mac/ClipboardMac.mm

    r150100 r150107  
    5656#endif
    5757
    58 ClipboardMac::ClipboardMac(ClipboardType clipboardType, const String& pasteboardName, ClipboardAccessPolicy policy, ClipboardContents clipboardContents, Frame *frame)
     58ClipboardMac::ClipboardMac(ClipboardType clipboardType, const String& pasteboardName, ClipboardAccessPolicy policy, ClipboardContents clipboardContents)
    5959    : Clipboard(policy, clipboardType, Pasteboard::create(pasteboardName), clipboardContents == DragAndDropFiles)
    6060    , m_pasteboardName(pasteboardName)
    61     , m_frame(frame)
    6261{
    6362    m_changeCount = platformStrategies()->pasteboardStrategy()->changeCount(m_pasteboardName);
    … …  
    7776#endif // ENABLE(DRAG_SUPPORT)
    7877   
    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
     78DragImageRef Clipboard::createDragImage(IntPoint& location) const
    8879{
    8980    NSImage *result = nil;
    9081    if (m_dragImageElement) {
    91         if (m_frame) {
     82        Document* document = m_dragImageElement->document();
     83        if (Frame* frame = document->frame()) {
    9284            NSRect imageRect;
    9385            NSRect elementRect;
    94             result = snapshotDragImage(m_frame, m_dragImageElement.get(), &imageRect, &elementRect);
     86            result = snapshotDragImage(frame, m_dragImageElement.get(), &imageRect, &elementRect);
    9587            // Client specifies point relative to element, not the whole image, which may include child
    9688            // 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()));
    10091        }
    10192    } else if (m_dragImage) {
    10293        result = m_dragImage->image()->getNSImage();
    10394       
    104         loc = m_dragLoc;
    105         loc.y = [result size].height - loc.y;
     95        location = m_dragLoc;
     96        location.setY([result size].height - location.y());
    10697    }
    10798    return result;
Note: See TracChangeset for help on using the changeset viewer.