Chromium Code Reviews| Index: chrome/browser/ui/cocoa/browser_window_controller_private.mm |
| diff --git a/chrome/browser/ui/cocoa/browser_window_controller_private.mm b/chrome/browser/ui/cocoa/browser_window_controller_private.mm |
| index 8dd4f36cd8f3e6637a4dc67edcc605b3db301b24..a47e609fa531ecd87e5d6fc3b2de8ada76a4863a 100644 |
| --- a/chrome/browser/ui/cocoa/browser_window_controller_private.mm |
| +++ b/chrome/browser/ui/cocoa/browser_window_controller_private.mm |
| @@ -288,13 +288,10 @@ willPositionSheet:(NSWindow*)sheet |
| [tabStripView removeFromSuperview]; |
| } |
| - // Ditto for the content view. |
| - base::scoped_nsobject<NSView> contentView( |
| - [[sourceWindow contentView] retain]); |
| // Disable autoresizing of subviews while we move views around. This prevents |
| // spurious renderer resizes. |
| - [contentView setAutoresizesSubviews:NO]; |
| - [contentView removeFromSuperview]; |
| + [self.chromeContentView setAutoresizesSubviews:NO]; |
| + [self.chromeContentView removeFromSuperview]; |
| // Have to do this here, otherwise later calls can crash because the window |
| // has no delegate. |
| @@ -306,9 +303,11 @@ willPositionSheet:(NSWindow*)sheet |
| // drawOverlayRect:]. I'm pretty convinced this is an Apple bug, but there is |
| // no visual impact. I have been unable to tickle it away with other window |
| // or view manipulation Cocoa calls. Stack added to suppressions_mac.txt. |
| - [contentView setAutoresizesSubviews:YES]; |
| - [destWindow setContentView:contentView]; |
| - [self moveContentViewToBack:contentView]; |
| + [self.chromeContentView setAutoresizesSubviews:YES]; |
| + [[destWindow contentView] addSubview:self.chromeContentView |
| + positioned:NSWindowBelow |
| + relativeTo:nil]; |
| + [self.chromeContentView setFrame:[[destWindow contentView] bounds]]; |
| // Move the incognito badge if present. |
| if ([self shouldShowAvatar]) { |
| @@ -319,10 +318,13 @@ willPositionSheet:(NSWindow*)sheet |
| [[destWindow cr_windowView] addSubview:avatarButtonView]; |
| } |
| + // Move the tab strip background view. |
| + [self insertTabStripBackgroundViewIntoWindow:destWindow]; |
|
erikchen
2014/10/09 21:24:39
I assume this was an oversight in the CL that intr
Andre
2014/10/09 23:15:48
tabStripBackgroundView should not be moved here.
T
erikchen
2014/10/10 00:47:45
Done.
|
| + |
| // Add the tab strip after setting the content view and moving the incognito |
| // badge (if any), so that the tab strip will be on top (in the z-order). |
| if ([self hasTabStrip]) |
| - [self insertTabStripView:tabStripView intoWindow:[self window]]; |
| + [self insertTabStripView:tabStripView intoWindow:destWindow]; |
| [sourceWindow setWindowController:nil]; |
| [self setWindow:destWindow]; |
| @@ -626,7 +628,7 @@ willPositionSheet:(NSWindow*)sheet |
| for (NSWindow* window in [[NSApplication sharedApplication] windows]) { |
| if ([window |
| isKindOfClass:NSClassFromString(@"NSToolbarFullScreenWindow")]) { |
| - [window.contentView setHidden:YES]; |
| + [[window contentView] setHidden:YES]; |
| } |
| } |
| } |
| @@ -912,18 +914,18 @@ willPositionSheet:(NSWindow*)sheet |
| - (void)setContentViewSubviews:(NSArray*)subviews { |
| // Subviews already match. |
| - if ([[self.window.contentView subviews] isEqual:subviews]) |
| + if ([[self.chromeContentView subviews] isEqual:subviews]) |
| return; |
| // The tabContentArea isn't a subview, so just set all the subviews. |
| NSView* tabContentArea = [self tabContentArea]; |
| - if (![[self.window.contentView subviews] containsObject:tabContentArea]) { |
| - [self.window.contentView setSubviews:subviews]; |
| + if (![[self.chromeContentView subviews] containsObject:tabContentArea]) { |
| + [self.chromeContentView setSubviews:subviews]; |
| return; |
| } |
| // Remove all subviews that aren't the tabContentArea. |
| - for (NSView* view in [[self.window.contentView subviews] copy]) { |
| + for (NSView* view in [[self.chromeContentView subviews] copy]) { |
| if (view != tabContentArea) |
| [view removeFromSuperview]; |
| } |
| @@ -932,17 +934,17 @@ willPositionSheet:(NSWindow*)sheet |
| NSInteger index = [subviews indexOfObject:tabContentArea]; |
| for (int i = index - 1; i >= 0; --i) { |
| NSView* view = [subviews objectAtIndex:i]; |
| - [self.window.contentView addSubview:view |
| - positioned:NSWindowBelow |
| - relativeTo:nil]; |
| + [self.chromeContentView addSubview:view |
| + positioned:NSWindowBelow |
| + relativeTo:nil]; |
| } |
| // Add in the subviews above the tabContentArea. |
| for (NSUInteger i = index + 1; i < [subviews count]; ++i) { |
| NSView* view = [subviews objectAtIndex:i]; |
| - [self.window.contentView addSubview:view |
| - positioned:NSWindowAbove |
| - relativeTo:nil]; |
| + [self.chromeContentView addSubview:view |
| + positioned:NSWindowAbove |
| + relativeTo:nil]; |
| } |
| } |