diff options
author | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-02 15:25:06 +0000 |
---|---|---|
committer | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-02 15:25:06 +0000 |
commit | 7dc860c3d141d0e40e52d50775f647de75dd0858 (patch) | |
tree | 6d0a48d06a5ebd6eedb1a6d35cd44aa682e70c44 | |
parent | 52d75fb7bdf4854457c385f6c91d8b453ee62a9e (diff) | |
download | chromium_src-7dc860c3d141d0e40e52d50775f647de75dd0858.zip chromium_src-7dc860c3d141d0e40e52d50775f647de75dd0858.tar.gz chromium_src-7dc860c3d141d0e40e52d50775f647de75dd0858.tar.bz2 |
Dragged tabs should be themed.
BUG=http://crbug.com/37077
TEST=as in bug; drag off a tab and it should stay themed
Review URL: http://codereview.chromium.org/660302
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40382 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/cocoa/tab_window_controller.mm | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/chrome/browser/cocoa/tab_window_controller.mm b/chrome/browser/cocoa/tab_window_controller.mm index 8a638a1..e2cd931 100644 --- a/chrome/browser/cocoa/tab_window_controller.mm +++ b/chrome/browser/cocoa/tab_window_controller.mm @@ -4,6 +4,7 @@ #import "chrome/browser/cocoa/tab_window_controller.h" +#include "app/theme_provider.h" #include "base/logging.h" #import "chrome/browser/cocoa/tab_strip_view.h" @@ -11,6 +12,31 @@ - (void)setUseOverlay:(BOOL)useOverlay; @end +@interface TabWindowOverlayWindow : NSWindow +@end + +@implementation TabWindowOverlayWindow + +- (ThemeProvider*)themeProvider { + if ([self parentWindow]) + return [[[self parentWindow] windowController] themeProvider]; + return NULL; +} + +- (BOOL)themeIsIncognito { + if ([self parentWindow]) + return [[[self parentWindow] windowController] themeIsIncognito]; + return NO; +} + +- (NSPoint)themePatternPhase { + if ([self parentWindow]) + return [[[self parentWindow] windowController] themePatternPhase]; + return NSZeroPoint; +} + +@end + @implementation TabWindowController @synthesize tabStripView = tabStripView_; @synthesize tabContentArea = tabContentArea_; @@ -83,17 +109,18 @@ NSWindow* window = [self window]; if (useOverlay && !overlayWindow_) { DCHECK(!cachedContentView_); - overlayWindow_ = [[NSPanel alloc] initWithContentRect:[window frame] - styleMask:NSBorderlessWindowMask - backing:NSBackingStoreBuffered - defer:YES]; + overlayWindow_ = [[TabWindowOverlayWindow alloc] + initWithContentRect:[window frame] + styleMask:NSBorderlessWindowMask + backing:NSBackingStoreBuffered + defer:YES]; [overlayWindow_ setTitle:@"overlay"]; [overlayWindow_ setBackgroundColor:[NSColor clearColor]]; [overlayWindow_ setOpaque:NO]; [overlayWindow_ setDelegate:self]; cachedContentView_ = [window contentView]; - [self moveViewsBetweenWindowAndOverlay:useOverlay]; [window addChildWindow:overlayWindow_ ordered:NSWindowAbove]; + [self moveViewsBetweenWindowAndOverlay:useOverlay]; [overlayWindow_ orderFront:nil]; } else if (!useOverlay && overlayWindow_) { DCHECK(cachedContentView_); |