summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormaf@chromium.org <maf@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-11 04:30:44 +0000
committermaf@chromium.org <maf@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-11 04:30:44 +0000
commit62532e803f8090a4745cbf119d57e83510e88c1f (patch)
tree2029828abf8256b731e1c28857211bd8aa635c49
parentd04a5ba18334bc72052ef77ccbc1097f5b51a1d4 (diff)
downloadchromium_src-62532e803f8090a4745cbf119d57e83510e88c1f.zip
chromium_src-62532e803f8090a4745cbf119d57e83510e88c1f.tar.gz
chromium_src-62532e803f8090a4745cbf119d57e83510e88c1f.tar.bz2
Do all layout math using [screen visibleFrame] not a mixture of [screen visibleFrame] and [screen frame].
This fixes the edge case where the discrepancy led to a weird half menu. BUG=73993 Review URL: http://codereview.chromium.org/6674012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77786 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm11
-rw-r--r--chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller_unittest.mm4
2 files changed, 8 insertions, 7 deletions
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm
index 6dba84e..91dbc70 100644
--- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm
@@ -436,7 +436,7 @@ struct LayoutMetrics {
// If off the screen, switch direction.
if ((x + windowWidth +
bookmarks::kBookmarkHorizontalScreenPadding) >
- NSMaxX([[[self window] screen] frame])) {
+ NSMaxX([[[self window] screen] visibleFrame])) {
[self setSubFolderGrowthToRight:NO];
} else {
return x;
@@ -449,7 +449,7 @@ struct LayoutMetrics {
bookmarks::kBookmarkMenuOverlap -
windowWidth;
// If off the screen, switch direction.
- if (x < NSMinX([[[self window] screen] frame])) {
+ if (x < NSMinX([[[self window] screen] visibleFrame])) {
[self setSubFolderGrowthToRight:YES];
} else {
return x;
@@ -457,7 +457,7 @@ struct LayoutMetrics {
}
}
// Unhappy; do the best we can.
- return NSMaxX([[[self window] screen] frame]) - windowWidth;
+ return NSMaxX([[[self window] screen] visibleFrame]) - windowWidth;
}
@@ -487,7 +487,7 @@ struct LayoutMetrics {
// Make sure the window is on-screen; if not, push left. It is
// intentional that top level folders "push left" slightly
// different than subfolders.
- NSRect screenFrame = [[[parentButton_ window] screen] frame];
+ NSRect screenFrame = [[[parentButton_ window] screen] visibleFrame];
CGFloat spillOff = (newWindowTopLeft.x + windowWidth) - NSMaxX(screenFrame);
if (spillOff > 0.0) {
newWindowTopLeft.x = std::max(newWindowTopLeft.x - spillOff,
@@ -660,7 +660,8 @@ struct LayoutMetrics {
} else {
if (metrics.canScrollDown) {
// Couldn't -> Can
- metrics.deltaWindowHeight += (NSMaxY([[[self window] screen] frame]) -
+ metrics.deltaWindowHeight += (NSMaxY([[[self window] screen]
+ visibleFrame]) -
NSMaxY(metrics.windowFrame));
metrics.deltaVisibleHeight -= bookmarks::kScrollWindowVerticalMargin;
metrics.deltaScrollerHeight -= verticalScrollArrowHeight_;
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller_unittest.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller_unittest.mm
index 27ad718..f3ab0d9 100644
--- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller_unittest.mm
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller_unittest.mm
@@ -450,7 +450,7 @@ TEST_F(BookmarkBarFolderControllerTest, ChildFolderWidth) {
// Simple scrolling tests.
TEST_F(BookmarkBarFolderControllerTest, SimpleScroll) {
scoped_nsobject<BookmarkBarFolderController> bbfc;
- NSRect screenFrame = [[NSScreen mainScreen] frame];
+ NSRect screenFrame = [[NSScreen mainScreen] visibleFrame];
CGFloat screenHeight = NSHeight(screenFrame);
int nodecount = AddLotsOfNodes();
bbfc.reset(SimpleBookmarkBarFolderController());
@@ -506,7 +506,7 @@ TEST_F(BookmarkBarFolderControllerTest, SimpleScroll) {
bool bothAtOnce = false;
while ([bbfc canScrollUp]) {
[bbfc performOneScroll:60];
- EXPECT_TRUE(NSContainsRect(screenFrame, [window frame]));
+ EXPECT_TRUE(NSContainsRect([[NSScreen mainScreen] frame], [window frame]));
// Make sure, sometime during our scroll, we have the ability to
// scroll in either direction.
if ([bbfc canScrollUp] &&