diff options
author | tony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-04 09:14:20 +0000 |
---|---|---|
committer | tony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-04 09:14:20 +0000 |
commit | daec5d6a2da11bf88bcc6f80521e96f4755c9f28 (patch) | |
tree | 72c5559cdf2fc0ec4ce6aaf4b53c3f4679d51ee0 | |
parent | 0fb2f9959ef2c03622dda6bd336816b3141a137a (diff) | |
download | chromium_src-daec5d6a2da11bf88bcc6f80521e96f4755c9f28.zip chromium_src-daec5d6a2da11bf88bcc6f80521e96f4755c9f28.tar.gz chromium_src-daec5d6a2da11bf88bcc6f80521e96f4755c9f28.tar.bz2 |
Changed to tell draggin status to webkit. Also fixed mouse pointer coordinate
computation which originally assumed that source coordinate
as windows coordinate, but actually it was o screen coordinate.
This patch should wait for https://bugs.webkit.org/show_bug.cgi?id=39725.
BUG=37320
TEST=none
Original patch written by morrita@google.com
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48910 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/cocoa/web_drag_source.mm | 10 | ||||
-rwxr-xr-x | chrome/renderer/render_view.cc | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/chrome/browser/cocoa/web_drag_source.mm b/chrome/browser/cocoa/web_drag_source.mm index fdbb516..98e22af 100644 --- a/chrome/browser/cocoa/web_drag_source.mm +++ b/chrome/browser/cocoa/web_drag_source.mm @@ -209,6 +209,12 @@ void PromiseWriterTask::Run() { } } +- (NSPoint)convertScreenPoint:(NSPoint)screenPoint { + DCHECK([contentsView_ window]); + NSPoint basePoint = [[contentsView_ window] convertScreenToBase:screenPoint]; + return [contentsView_ convertPoint:basePoint fromView:nil]; +} + - (void)startDrag { NSEvent* currentEvent = [NSApp currentEvent]; @@ -250,7 +256,7 @@ void PromiseWriterTask::Run() { rvh->DragSourceSystemDragEnded(); // Convert |screenPoint| to view coordinates and flip it. - NSPoint localPoint = [contentsView_ convertPoint:screenPoint fromView:nil]; + NSPoint localPoint = [self convertScreenPoint:screenPoint]; NSRect viewFrame = [contentsView_ frame]; localPoint.y = viewFrame.size.height - localPoint.y; // Flip |screenPoint|. @@ -270,7 +276,7 @@ void PromiseWriterTask::Run() { RenderViewHost* rvh = [contentsView_ tabContents]->render_view_host(); if (rvh) { // Convert |screenPoint| to view coordinates and flip it. - NSPoint localPoint = [contentsView_ convertPoint:screenPoint fromView:nil]; + NSPoint localPoint = [self convertScreenPoint:screenPoint]; NSRect viewFrame = [contentsView_ frame]; localPoint.y = viewFrame.size.height - localPoint.y; // Flip |screenPoint|. diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index a37872e..467d5c4 100755 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -3790,6 +3790,8 @@ void RenderView::OnDragSourceEndedOrMoved(const gfx::Point& client_point, WebDragOperation op) { if (ended) { webview()->dragSourceEndedAt(client_point, screen_point, op); + } else { + webview()->dragSourceMovedTo(client_point, screen_point, op); } } |