Title: [86717] trunk/Source/WebKit2
Revision
86717
Author
[email protected]
Date
2011-05-17 16:15:06 -0700 (Tue, 17 May 2011)

Log Message

WebKit2: Needs API to set a custom drop target
https://bugs.webkit.org/show_bug.cgi?id=60991
<rdar://problem/9090868>
        
Reviewed by Adam Roben.

Add API to set a custom drop target on a WKView.

* UIProcess/API/C/win/WKView.cpp:
(WKViewSetCustomDropTarget): Call through to WebView::setCustomDropTarget.
* UIProcess/API/C/win/WKView.h:
* UIProcess/win/WebView.cpp:
(WebKit::WebView::setCustomDropTarget): Revoke the current drop target, and register the
    custom one.
* UIProcess/win/WebView.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (86716 => 86717)


--- trunk/Source/WebKit2/ChangeLog	2011-05-17 23:10:14 UTC (rev 86716)
+++ trunk/Source/WebKit2/ChangeLog	2011-05-17 23:15:06 UTC (rev 86717)
@@ -1,3 +1,21 @@
+2011-05-17  Brian Weinstein  <[email protected]>
+
+        Reviewed by Adam Roben.
+
+        WebKit2: Needs API to set a custom drop target
+        https://bugs.webkit.org/show_bug.cgi?id=60991
+        <rdar://problem/9090868>
+        
+        Add API to set a custom drop target on a WKView.
+
+        * UIProcess/API/C/win/WKView.cpp:
+        (WKViewSetCustomDropTarget): Call through to WebView::setCustomDropTarget.
+        * UIProcess/API/C/win/WKView.h:
+        * UIProcess/win/WebView.cpp:
+        (WebKit::WebView::setCustomDropTarget): Revoke the current drop target, and register the
+            custom one.
+        * UIProcess/win/WebView.h:
+
 2011-05-17  Sam Weinig  <[email protected]>
 
         Reviewed by Dan Bernstein.

Modified: trunk/Source/WebKit2/UIProcess/API/C/win/WKView.cpp (86716 => 86717)


--- trunk/Source/WebKit2/UIProcess/API/C/win/WKView.cpp	2011-05-17 23:10:14 UTC (rev 86716)
+++ trunk/Source/WebKit2/UIProcess/API/C/win/WKView.cpp	2011-05-17 23:15:06 UTC (rev 86717)
@@ -119,3 +119,8 @@
     return toImpl(viewRef)->page()->drawsTransparentBackground();
 }
 
+void WKViewSetCustomDropTarget(WKViewRef viewRef, IDropTarget* dropTarget)
+{
+    return toImpl(viewRef)->setCustomDropTarget(dropTarget);
+}
+

Modified: trunk/Source/WebKit2/UIProcess/API/C/win/WKView.h (86716 => 86717)


--- trunk/Source/WebKit2/UIProcess/API/C/win/WKView.h	2011-05-17 23:10:14 UTC (rev 86716)
+++ trunk/Source/WebKit2/UIProcess/API/C/win/WKView.h	2011-05-17 23:15:06 UTC (rev 86717)
@@ -83,6 +83,8 @@
 WK_EXPORT void WKViewSetDrawsTransparentBackground(WKViewRef view, bool drawsTransparentBackground);
 WK_EXPORT bool WKViewDrawsTransparentBackground(WKViewRef view);
 
+WK_EXPORT void WKViewSetCustomDropTarget(WKViewRef view, IDropTarget*);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/Source/WebKit2/UIProcess/win/WebView.cpp (86716 => 86717)


--- trunk/Source/WebKit2/UIProcess/win/WebView.cpp	2011-05-17 23:10:14 UTC (rev 86716)
+++ trunk/Source/WebKit2/UIProcess/win/WebView.cpp	2011-05-17 23:15:06 UTC (rev 86717)
@@ -1121,6 +1121,19 @@
     command->unapply();
 }
 
+void WebView::setCustomDropTarget(IDropTarget* dropTarget)
+{
+    if (!m_page->isValid() || !m_window)
+        return;
+
+    ::RevokeDragDrop(m_window);
+
+    if (dropTarget)
+        ::RegisterDragDrop(m_window, dropTarget);
+    else
+        ::RegisterDragDrop(m_window, this);
+}
+
 FloatRect WebView::convertToDeviceSpace(const FloatRect& rect)
 {
     return rect;

Modified: trunk/Source/WebKit2/UIProcess/win/WebView.h (86716 => 86717)


--- trunk/Source/WebKit2/UIProcess/win/WebView.h	2011-05-17 23:10:14 UTC (rev 86716)
+++ trunk/Source/WebKit2/UIProcess/win/WebView.h	2011-05-17 23:15:06 UTC (rev 86717)
@@ -89,6 +89,8 @@
     void reapplyEditCommand(WebEditCommandProxy*);
     void unapplyEditCommand(WebEditCommandProxy*);
 
+    void setCustomDropTarget(IDropTarget*);
+
     // IUnknown
     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
     virtual ULONG STDMETHODCALLTYPE AddRef(void);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to