summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-04 09:14:20 +0000
committertony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-04 09:14:20 +0000
commitdaec5d6a2da11bf88bcc6f80521e96f4755c9f28 (patch)
tree72c5559cdf2fc0ec4ce6aaf4b53c3f4679d51ee0
parent0fb2f9959ef2c03622dda6bd336816b3141a137a (diff)
downloadchromium_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.mm10
-rwxr-xr-xchrome/renderer/render_view.cc2
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);
}
}