diff options
author | jrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-10 23:32:01 +0000 |
---|---|---|
committer | jrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-10 23:32:01 +0000 |
commit | 54375ea0c2f488d012176479d3ad2d08af42c32c (patch) | |
tree | 6ece306abb33b4b7342495fb5cc37fcd0e63dea6 /chrome | |
parent | 28fd315edf0cf8f4b238dbc5eb58c1842507cd27 (diff) | |
download | chromium_src-54375ea0c2f488d012176479d3ad2d08af42c32c.zip chromium_src-54375ea0c2f488d012176479d3ad2d08af42c32c.tar.gz chromium_src-54375ea0c2f488d012176479d3ad2d08af42c32c.tar.bz2 |
Be more accurate on a bookmark folder scroll trigger.
ALso fix broken unit test.
BUG=http://crbug.com/51640
TEST=place a million bookmarks in a folder. Open the folder. Make
sure the scroll up only happens when the mouse is over the arrow
(horiz positioning doesn't matter). Now that the scroll down arrow
(at top of screen) has appeared, make sure the scroll down only
happens when the mouse is over the arrow (again, horiz positioning
doesn't matter).
Review URL: http://codereview.chromium.org/3327017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59173 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/cocoa/bookmark_bar_folder_controller.mm | 8 | ||||
-rw-r--r-- | chrome/browser/cocoa/bookmark_bar_folder_controller_unittest.mm | 7 |
2 files changed, 9 insertions, 6 deletions
diff --git a/chrome/browser/cocoa/bookmark_bar_folder_controller.mm b/chrome/browser/cocoa/bookmark_bar_folder_controller.mm index 4560fda..3c3805cd 100644 --- a/chrome/browser/cocoa/bookmark_bar_folder_controller.mm +++ b/chrome/browser/cocoa/bookmark_bar_folder_controller.mm @@ -713,11 +713,13 @@ const CGFloat kScrollWindowVerticalMargin = 0.0; NSPoint eventScreenLocation = [[theEvent window] convertBaseToScreen:[theEvent locationInWindow]]; - NSRect visibleRect = [[[self window] screen] visibleFrame]; + // We use frame (not visibleFrame) since our bookmark folder is on + // TOP of the menubar. + NSRect visibleRect = [[[self window] screen] frame]; CGFloat closeToTopOfScreen = NSMaxY(visibleRect) - - kBookmarkBarFolderScrollAmount; + verticalScrollArrowHeight_; CGFloat closeToBottomOfScreen = NSMinY(visibleRect) + - kBookmarkBarFolderScrollAmount; + verticalScrollArrowHeight_; if (eventScreenLocation.y <= closeToBottomOfScreen) { [self beginScrollWindowUp]; diff --git a/chrome/browser/cocoa/bookmark_bar_folder_controller_unittest.mm b/chrome/browser/cocoa/bookmark_bar_folder_controller_unittest.mm index 6d09ae7..cc53d25 100644 --- a/chrome/browser/cocoa/bookmark_bar_folder_controller_unittest.mm +++ b/chrome/browser/cocoa/bookmark_bar_folder_controller_unittest.mm @@ -216,7 +216,9 @@ TEST_F(BookmarkBarFolderControllerTest, InitCreateAndDelete) { Class cellClass = [BookmarkBarFolderButtonCell class]; for (BookmarkButton* button in buttons) { NSRect r = [[bbfc mainView] convertRect:[button frame] fromView:button]; - EXPECT_TRUE(NSContainsRect([[bbfc mainView] frame], r)); + // TODO(jrg): remove this adjustment. + NSRect bigger = NSInsetRect([[bbfc mainView] frame], -2, 0); + EXPECT_TRUE(NSContainsRect(bigger, r)); EXPECT_TRUE([[button cell] isKindOfClass:cellClass]); } @@ -1154,8 +1156,7 @@ TEST_F(BookmarkBarFolderControllerMenuTest, MenuSizingAndScrollArrows) { button = [folderController buttonWithTitleEqualTo:@"a"]; CGFloat buttonWidth = NSWidth([button frame]); CGFloat expectedWidth = - buttonWidth + (2 * bookmarks::kBookmarkVerticalPadding) + - bookmarks::kScrollViewContentWidthMargin; + buttonWidth + (2 * bookmarks::kBookmarkHorizontalPadding); EXPECT_CGFLOAT_EQ(expectedWidth, menuWidth); // Add a wider bookmark and make sure the button widths match. |