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]; |
} |
} |