summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/bubble_view.mm
diff options
context:
space:
mode:
authoravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-05 20:40:50 +0000
committeravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-05 20:40:50 +0000
commit1821bdcf40d37a2a4bb6fe4b5a7fa83dd1aee86d (patch)
tree643ce0792fadfe868fd532e7bd86ebb47431d130 /chrome/browser/cocoa/bubble_view.mm
parent2fa4f8d4a0cb58d3e9c518d3c90a4e36479a6ff3 (diff)
downloadchromium_src-1821bdcf40d37a2a4bb6fe4b5a7fa83dd1aee86d.zip
chromium_src-1821bdcf40d37a2a4bb6fe4b5a7fa83dd1aee86d.tar.gz
chromium_src-1821bdcf40d37a2a4bb6fe4b5a7fa83dd1aee86d.tar.bz2
Make sure we adjust the theme source for the status bubble when moving between windows.
BUG=http://crbug.com/37445 TEST=as in bug Review URL: http://codereview.chromium.org/669185 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40771 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/bubble_view.mm')
-rw-r--r--chrome/browser/cocoa/bubble_view.mm15
1 files changed, 12 insertions, 3 deletions
diff --git a/chrome/browser/cocoa/bubble_view.mm b/chrome/browser/cocoa/bubble_view.mm
index c612c6a..9c5f569 100644
--- a/chrome/browser/cocoa/bubble_view.mm
+++ b/chrome/browser/cocoa/bubble_view.mm
@@ -17,8 +17,8 @@ const float kWindowEdge = 0.7f;
// Designated initializer. |provider| is the window from which we get the
// current theme to draw text and backgrounds. If nil, the current window will
-// be checked. Defaults to all corners being rounded. The caller needs to
-// ensure |provider| can't go away as it will not be retained.
+// be checked. The caller needs to ensure |provider| can't go away as it will
+// not be retained. Defaults to all corners being rounded.
- (id)initWithFrame:(NSRect)frame themeProvider:(NSWindow*)provider {
if ((self = [super initWithFrame:frame])) {
cornerFlags_ = kRoundedAllCorners;
@@ -43,6 +43,13 @@ const float kWindowEdge = 0.7f;
[self setNeedsDisplay:YES];
}
+- (void)setThemeProvider:(NSWindow*)provider {
+ if (themeProvider_ == provider)
+ return;
+ themeProvider_ = provider;
+ [self setNeedsDisplay:YES];
+}
+
- (NSString*)content {
return content_.get();
}
@@ -67,7 +74,9 @@ const float kWindowEdge = 0.7f;
float bottomRightRadius =
cornerFlags_ & kRoundedBottomRightCorner ? kBubbleCornerRadius : 0;
- ThemeProvider* themeProvider = [themeProvider_ themeProvider];
+ ThemeProvider* themeProvider =
+ themeProvider_ ? [themeProvider_ themeProvider] :
+ [[self window] themeProvider];
// Background / Edge