summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-17 20:20:12 +0000
committerpinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-17 20:20:12 +0000
commit100a291254a7d72236539a6deda1a173331973c1 (patch)
tree24c4921f7316aba5d3c46facfc84987336a2e775
parent128369396677f4480166e12d5e14d2a578336f3f (diff)
downloadchromium_src-100a291254a7d72236539a6deda1a173331973c1.zip
chromium_src-100a291254a7d72236539a6deda1a173331973c1.tar.gz
chromium_src-100a291254a7d72236539a6deda1a173331973c1.tar.bz2
Flip screen coordinates when converting NSEvent to WebMouseEvent. Enable processing of events during drag.
BUG=16909, 113616 TEST=dragging thumbnails works on NTP, dragging emails in gmail. Review URL: http://codereview.chromium.org/159021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20989 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/tab_contents/tab_contents_view_mac.mm6
-rw-r--r--webkit/api/src/mac/WebInputEventFactory.mm2
2 files changed, 5 insertions, 3 deletions
diff --git a/chrome/browser/tab_contents/tab_contents_view_mac.mm b/chrome/browser/tab_contents/tab_contents_view_mac.mm
index 192a082..bfcb94b 100644
--- a/chrome/browser/tab_contents/tab_contents_view_mac.mm
+++ b/chrome/browser/tab_contents/tab_contents_view_mac.mm
@@ -185,10 +185,11 @@ void TabContentsViewMac::StartDragging(const WebDropData& drop_data) {
// Tell the view to start a drag using |cocoa_view_| as the drag source. The
// source will get notified when the drag completes (success or failure) so
- // it can tell the render view host the drag is done. Windows does this with
- // a nested event loop, we get called back.
+ // it can tell the render view host the drag is done. The drag invokes a
+ // nested event loop, but we need to continue processing events.
NSPoint mousePoint = [currentEvent locationInWindow];
mousePoint = [cocoa_view_ convertPoint:mousePoint fromView:nil];
+ MessageLoop::current()->SetNestableTasksAllowed(true);
[cocoa_view_ dragImage:dragImage
at:mousePoint
offset:NSZeroSize
@@ -196,6 +197,7 @@ void TabContentsViewMac::StartDragging(const WebDropData& drop_data) {
pasteboard:pasteboard
source:cocoa_view_
slideBack:YES];
+ MessageLoop::current()->SetNestableTasksAllowed(false);
}
void TabContentsViewMac::OnContentsDestroy() {
diff --git a/webkit/api/src/mac/WebInputEventFactory.mm b/webkit/api/src/mac/WebInputEventFactory.mm
index 33378c9..262903c 100644
--- a/webkit/api/src/mac/WebInputEventFactory.mm
+++ b/webkit/api/src/mac/WebInputEventFactory.mm
@@ -967,7 +967,7 @@ WebMouseEvent WebInputEventFactory::mouseEvent(NSEvent* event, NSView* view)
NSPoint location = [NSEvent mouseLocation]; // global coordinates
result.globalX = location.x;
- result.globalY = location.y;
+ result.globalY = [[[view window] screen] frame].size.height - location.y;
NSPoint windowLocal = [event locationInWindow];
location = [view convertPoint:windowLocal fromView:nil];