summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/find_bar_cocoa_controller.mm
diff options
context:
space:
mode:
authorrohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-07 04:49:14 +0000
committerrohitrao@chromium.org <rohitrao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-07 04:49:14 +0000
commit7b0ec59003697f626184af266d670b014c5715d5 (patch)
tree1c4864c9268e1cec9c7c83d328db3bb323fb92c9 /chrome/browser/cocoa/find_bar_cocoa_controller.mm
parentc1d10a389f07e7cf1274cb4c053e5cee0bda095a (diff)
downloadchromium_src-7b0ec59003697f626184af266d670b014c5715d5.zip
chromium_src-7b0ec59003697f626184af266d670b014c5715d5.tar.gz
chromium_src-7b0ec59003697f626184af266d670b014c5715d5.tar.bz2
Reverts the revert of 22517.
Rewrites the Mac view resizing logic to have the BrowserWindowController directly resize and relayout its children views. Now when a view needs to be resized, it asks its resize delegate (typically its controller's parent) to perform the resize. BUG=http://crbug.com/17619 TEST=Make sure that views are laid out correctly, even when they change size. Open and close the bookmark bar. Trigger an infobar and then close it. Trigger the download shelf and then close it. Trigger a download shelf with the infobar open, or with the bookmark bar open. Switch to and from fullscreen with various bars open. Resize the browser window with various bars open. Start the browser with and without the bookmark bar open. Try all of the above in a popup window. Review URL: http://codereview.chromium.org/165014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22721 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/find_bar_cocoa_controller.mm')
-rw-r--r--chrome/browser/cocoa/find_bar_cocoa_controller.mm22
1 files changed, 12 insertions, 10 deletions
diff --git a/chrome/browser/cocoa/find_bar_cocoa_controller.mm b/chrome/browser/cocoa/find_bar_cocoa_controller.mm
index f28fd56..15b53d6 100644
--- a/chrome/browser/cocoa/find_bar_cocoa_controller.mm
+++ b/chrome/browser/cocoa/find_bar_cocoa_controller.mm
@@ -52,21 +52,23 @@
true, false);
}
-// Positions the find bar view in the correct location based on the
-// current state of the window. Currently only the visibility of the
-// bookmark bar can affect the find bar's position.
-- (void)positionFindBarView:(NSView*)contentArea {
+// Positions the find bar view in the correct location based on the current
+// state of the window. The findbar is always positioned one pixel above the
+// infobar container. Note that we are using the infobar container location as
+// a proxy for the toolbar location, but we cannot position based on the toolbar
+// because the toolbar is not always present (for example in fullscreen
+// windows).
+- (void)positionFindBarView:(NSView*)infoBarContainerView {
static const int kRightEdgeOffset = 25;
NSView* findBarView = [self view];
int findBarHeight = NSHeight([findBarView frame]);
int findBarWidth = NSWidth([findBarView frame]);
- // Start by computing the upper right corner of the tab content
- // area, then move left by a constant offset and up one pixel. This
- // gives us the upper right corner of our bounding box. We move up
- // one pixel to overlap with the toolbar area, which allows us to
- // cover up the toolbar's border.
- NSRect windowRect = [contentArea frame];
+ // Start by computing the upper right corner of the infobar container, then
+ // move left by a constant offset and up one pixel. This gives us the upper
+ // right corner of our bounding box. We move up one pixel to overlap with the
+ // toolbar area, which allows us to cover up the toolbar's border, if present.
+ NSRect windowRect = [infoBarContainerView frame];
int max_x = NSMaxX(windowRect) - kRightEdgeOffset;
int max_y = NSMaxY(windowRect) + 1;