| Index: chrome/browser/cocoa/toolbar_controller.mm
|
| diff --git a/chrome/browser/cocoa/toolbar_controller.mm b/chrome/browser/cocoa/toolbar_controller.mm
|
| index 05a70b7f29b65197bb742eb56a1376f3d95be00b..cb78971c8cc76100ee479a0932b502b1dad70ec1 100644
|
| --- a/chrome/browser/cocoa/toolbar_controller.mm
|
| +++ b/chrome/browser/cocoa/toolbar_controller.mm
|
| @@ -149,6 +149,7 @@ class PrefObserverBridge : public NotificationObserver {
|
| browser_ = browser;
|
| resizeDelegate_ = resizeDelegate;
|
| hasToolbar_ = YES;
|
| + hasLocationBar_ = YES;
|
|
|
| // Register for notifications about state changes for the toolbar buttons
|
| commandObserver_.reset(new CommandObserverBridge(self, commands));
|
| @@ -165,6 +166,7 @@ class PrefObserverBridge : public NotificationObserver {
|
| // Make sure any code in the base class which assumes [self view] is
|
| // the "parent" view continues to work.
|
| hasToolbar_ = YES;
|
| + hasLocationBar_ = YES;
|
|
|
| [[NSNotificationCenter defaultCenter] removeObserver:self];
|
|
|
| @@ -293,7 +295,7 @@ class PrefObserverBridge : public NotificationObserver {
|
| [self mouseMoved:event];
|
| }
|
|
|
| -- (LocationBar*)locationBar {
|
| +- (LocationBar*)locationBarBridge {
|
| return locationBarView_.get();
|
| }
|
|
|
| @@ -377,15 +379,20 @@ class PrefObserverBridge : public NotificationObserver {
|
| [goButton_ setTag:tag];
|
| }
|
|
|
| -- (void)setHasToolbar:(BOOL)toolbar {
|
| - [self view]; // force nib loading
|
| +- (void)setHasToolbar:(BOOL)toolbar hasLocationBar:(BOOL)locBar {
|
| + [self view]; // Force nib loading.
|
| +
|
| hasToolbar_ = toolbar;
|
|
|
| - // App mode allows turning off the location bar as well.
|
| - // TODO(???): add more code here when implementing app mode to allow
|
| - // turning off both toolbar AND location bar.
|
| + // If there's a toolbar, there must be a location bar.
|
| + DCHECK((toolbar && locBar) || !toolbar);
|
| + hasLocationBar_ = toolbar ? YES : locBar;
|
| +
|
| + // Decide whether to hide/show based on whether there's a location bar.
|
| + [[self view] setHidden:!hasLocationBar_];
|
|
|
| // Make location bar not editable when in a pop-up.
|
| + // TODO(viettrungluu): is this right (all the time)?
|
| [locationBar_ setEditable:toolbar];
|
| }
|
|
|
| @@ -582,7 +589,9 @@ class PrefObserverBridge : public NotificationObserver {
|
| }
|
|
|
| - (CGFloat)desiredHeightForCompression:(CGFloat)compressByHeight {
|
| - return kBaseToolbarHeight - compressByHeight;
|
| + // With no toolbar, just ignore the compression.
|
| + return hasToolbar_ ? kBaseToolbarHeight - compressByHeight :
|
| + NSHeight([locationBar_ frame]);
|
| }
|
|
|
| - (void)setDividerOpacity:(CGFloat)opacity {
|
| @@ -613,7 +622,7 @@ class PrefObserverBridge : public NotificationObserver {
|
| // It is 'go', so see what it would do...
|
|
|
| // Fetch the EditView and EditModel
|
| - LocationBar* locationBar = [self locationBar];
|
| + LocationBar* locationBar = [self locationBarBridge];
|
| DCHECK(locationBar);
|
| AutocompleteEditView* editView = locationBar->location_entry();
|
| DCHECK(editView);
|
|
|