summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/ui/cocoa/browser_window_controller.mm6
-rw-r--r--chrome/browser/ui/cocoa/browser_window_controller_unittest.mm20
2 files changed, 24 insertions, 2 deletions
diff --git a/chrome/browser/ui/cocoa/browser_window_controller.mm b/chrome/browser/ui/cocoa/browser_window_controller.mm
index b86492f..bc66515 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller.mm
+++ b/chrome/browser/ui/cocoa/browser_window_controller.mm
@@ -603,7 +603,8 @@ using content::WebContents;
[self saveWindowPositionIfNeeded];
}
- [[[self window] contentView] cr_recursivelyInvokeBlock:^(id view) {
+ NSView* rootView = [[[self window] contentView] superview];
+ [rootView cr_recursivelyInvokeBlock:^(id view) {
if ([view conformsToProtocol:@protocol(ThemedWindowDrawing)])
[view windowDidChangeActive];
}];
@@ -613,7 +614,8 @@ using content::WebContents;
}
- (void)windowDidResignMain:(NSNotification*)notification {
- [[[self window] contentView] cr_recursivelyInvokeBlock:^(id view) {
+ NSView* rootView = [[[self window] contentView] superview];
+ [rootView cr_recursivelyInvokeBlock:^(id view) {
if ([view conformsToProtocol:@protocol(ThemedWindowDrawing)])
[view windowDidChangeActive];
}];
diff --git a/chrome/browser/ui/cocoa/browser_window_controller_unittest.mm b/chrome/browser/ui/cocoa/browser_window_controller_unittest.mm
index fab284b..9bc2ce5 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller_unittest.mm
+++ b/chrome/browser/ui/cocoa/browser_window_controller_unittest.mm
@@ -25,6 +25,7 @@
#include "content/public/test/test_utils.h"
#include "testing/gmock/include/gmock/gmock.h"
#import "testing/gtest_mac.h"
+#import "third_party/ocmock/OCMock/OCMock.h"
using ::testing::Return;
@@ -702,6 +703,25 @@ TEST_F(BrowserWindowControllerTest, BookmarkBarHitTest) {
EXPECT_TRUE([[contentView hitTest:point] isDescendantOf:bookmarkView]);
}
+// Check that when the window becomes/resigns main, the tab strip's background
+// view is redrawn.
+TEST_F(BrowserWindowControllerTest, TabStripBackgroundViewRedrawTest) {
+ NSView* view = controller_.tabStripBackgroundView;
+ id partial_mock = [OCMockObject partialMockForObject:view];
+
+ [[partial_mock expect] setNeedsDisplay:YES];
+ [[NSNotificationCenter defaultCenter]
+ postNotificationName:NSWindowDidBecomeMainNotification
+ object:controller_.window];
+ [partial_mock verify];
+
+ [[partial_mock expect] setNeedsDisplay:YES];
+ [[NSNotificationCenter defaultCenter]
+ postNotificationName:NSWindowDidResignMainNotification
+ object:controller_.window];
+ [partial_mock verify];
+}
+
@interface BrowserWindowControllerFakeFullscreen : BrowserWindowController {
@private
// We release the window ourselves, so we don't have to rely on the unittest