diff options
Diffstat (limited to 'WebKit/win/WebDropSource.cpp')
-rw-r--r-- | WebKit/win/WebDropSource.cpp | 12 |
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) |