summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-02 15:25:06 +0000
committeravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-02 15:25:06 +0000
commit7dc860c3d141d0e40e52d50775f647de75dd0858 (patch)
tree6d0a48d06a5ebd6eedb1a6d35cd44aa682e70c44
parent52d75fb7bdf4854457c385f6c91d8b453ee62a9e (diff)
downloadchromium_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.mm37
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_);