diff options
author | kkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-05 23:33:39 +0000 |
---|---|---|
committer | kkania@chromium.org <kkania@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-05 23:33:39 +0000 |
commit | 06552c1abc14f20e5dcc374a44c17e2cd29d9746 (patch) | |
tree | 972d20be4d74fa45c642cdae6fd98fd9f9c3cdfb /chrome/browser/automation/testing_automation_provider_mac.mm | |
parent | 10459c9813df78815d9ff900ac0af221b75db74b (diff) | |
download | chromium_src-06552c1abc14f20e5dcc374a44c17e2cd29d9746.zip chromium_src-06552c1abc14f20e5dcc374a44c17e2cd29d9746.tar.gz chromium_src-06552c1abc14f20e5dcc374a44c17e2cd29d9746.tar.bz2 |
[Mac] Fix getting the tab content's bounds in the automation provider.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/3539008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61582 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/automation/testing_automation_provider_mac.mm')
-rw-r--r-- | chrome/browser/automation/testing_automation_provider_mac.mm | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/chrome/browser/automation/testing_automation_provider_mac.mm b/chrome/browser/automation/testing_automation_provider_mac.mm index 4d368b1..bd50ad4 100644 --- a/chrome/browser/automation/testing_automation_provider_mac.mm +++ b/chrome/browser/automation/testing_automation_provider_mac.mm @@ -56,19 +56,25 @@ void TestingAutomationProvider::WindowGetViewBounds(int handle, DCHECK([controller isKindOfClass:[BrowserWindowController class]]); if (![controller isKindOfClass:[BrowserWindowController class]]) return; - NSView* tab = [controller selectedTabView]; + NSView* tab = + [[[controller tabStripController] activeTabContentsController] view]; if (!tab) return; - NSPoint coords = NSZeroPoint; + NSRect rect = [tab convertRectToBase:[tab bounds]]; + // The origin of the bounding box should be the top left of the tab contents, + // not bottom left, to match other platforms. + rect.origin.y += rect.size.height; + CGFloat coord_sys_height; if (screen_coordinates) { - coords = [window convertBaseToScreen:[tab convertPoint:NSZeroPoint - toView:nil]]; + rect.origin = [window convertBaseToScreen:rect.origin]; + coord_sys_height = [[window screen] frame].size.height; } else { - coords = [tab convertPoint:NSZeroPoint toView:[window contentView]]; + coord_sys_height = [window frame].size.height; } - // Flip coordinate system - coords.y = [[window screen] frame].size.height - coords.y; + // Flip coordinate system. + rect.origin.y = coord_sys_height - rect.origin.y; + *bounds = gfx::Rect(NSRectToCGRect(rect)); *success = true; } |