| 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];
|
| }
|
|
|
| - (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
|
|
|