Chromium Code Reviews| Index: chrome/browser/ui/panels/panel_window_controller_cocoa.mm |
| diff --git a/chrome/browser/ui/panels/panel_window_controller_cocoa.mm b/chrome/browser/ui/panels/panel_window_controller_cocoa.mm |
| index 0576fcc44e54af4f10e9998d34e6f4f19f9a4df6..bdcbbbf24e4c1aaefd29e891c80e2eb4655eea97 100644 |
| --- a/chrome/browser/ui/panels/panel_window_controller_cocoa.mm |
| +++ b/chrome/browser/ui/panels/panel_window_controller_cocoa.mm |
| @@ -80,6 +80,7 @@ enum { |
| if ((self = [super initWithWindowNibPath:nibpath owner:self])) { |
| windowShim_.reset(window); |
| animateOnBoundsChange_ = YES; |
| + alwaysOnTop_ = YES; |
| } |
| contentsController_.reset( |
| [[TabContentsController alloc] initWithContents:nil]); |
| @@ -117,8 +118,7 @@ enum { |
| DCHECK(titlebar_view_); |
| DCHECK_EQ(self, [window delegate]); |
| - if (!windowShim_->panel()->manager()->is_full_screen()) |
| - [window setLevel:NSStatusWindowLevel]; |
| + [self updateWindowLevel]; |
| if (base::mac::IsOSSnowLeopardOrLater()) { |
| [window setCollectionBehavior: |
| @@ -634,8 +634,7 @@ enum { |
| } |
| - (void)fullScreenModeChanged:(bool)isFullScreen { |
| - NSWindow* window = [self window]; |
| - [window setLevel:(isFullScreen ? NSNormalWindowLevel : NSStatusWindowLevel)]; |
| + [self updateWindowLevel]; |
|
jennb
2012/03/08 23:44:19
You've ignored the isFullScreen param...
jianli
2012/03/09 21:48:58
Yes since updateWindowLevel checks windowShim_->pa
|
| } |
| - (BOOL)canBecomeKeyWindow { |
| @@ -646,4 +645,19 @@ enum { |
| // cases when minimized Panel is getting keyboard input, invisibly. |
| return windowShim_->panel()->expansion_state() == Panel::EXPANDED; |
| } |
| + |
| +- (void)setAlwaysOnTop:(bool)onTop { |
| + if (alwaysOnTop_ == onTop) |
| + return; |
| + alwaysOnTop_ = onTop; |
| + [self updateWindowLevel]; |
| +} |
| + |
| +- (void)updateWindowLevel { |
| + if (![self isWindowLoaded]) |
| + return; |
| + BOOL onTop = alwaysOnTop_ && |
| + !windowShim_->panel()->manager()->is_full_screen(); |
| + [[self window] setLevel:(onTop ? NSStatusWindowLevel : NSNormalWindowLevel)]; |
| +} |
| @end |