summaryrefslogtreecommitdiffstats
path: root/WebKit/win/WebDropSource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/win/WebDropSource.cpp')
-rw-r--r--WebKit/win/WebDropSource.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/WebKit/win/WebDropSource.cpp b/WebKit/win/WebDropSource.cpp
index 47ffd5a..63465e2 100644
--- a/WebKit/win/WebDropSource.cpp
+++ b/WebKit/win/WebDropSource.cpp
@@ -104,22 +104,18 @@ PlatformMouseEvent generateMouseEvent(WebView* webView, bool isDrag) {
STDMETHODIMP WebDropSource::QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyState)
{
- if(fEscapePressed)
- return DRAGDROP_S_CANCEL;
-
- if(!(grfKeyState & (MK_LBUTTON|MK_RBUTTON))) {
- m_dropped = true;
+ if (fEscapePressed || !(grfKeyState & (MK_LBUTTON|MK_RBUTTON))) {
+ m_dropped = !fEscapePressed;
if (Page* page = m_webView->page())
if (Frame* frame = page->mainFrame())
//FIXME: We need to figure out how to find out what actually happened in the drag <rdar://problem/5015961>
- frame->eventHandler()->dragSourceEndedAt(generateMouseEvent(m_webView.get(), false), DragOperationCopy);
- return DRAGDROP_S_DROP;
+ frame->eventHandler()->dragSourceEndedAt(generateMouseEvent(m_webView.get(), false), fEscapePressed ? DragOperationNone : DragOperationCopy);
+ return fEscapePressed? DRAGDROP_S_CANCEL : DRAGDROP_S_DROP;
} else if (Page* page = m_webView->page())
if (Frame* frame = page->mainFrame())
frame->eventHandler()->dragSourceMovedTo(generateMouseEvent(m_webView.get(), true));
return S_OK;
-
}
STDMETHODIMP WebDropSource::GiveFeedback(DWORD)