Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Unified Diff: chrome/browser/ui/panels/panel_window_controller_cocoa.mm

Issue 10051020: Move full-screen detection logic from PanelManager to DisplaySettingsProvider. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix per feedback Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 94bc08263a2c9e62b3fce1fc87477545279afa91..3c94de234e58601a91fe532b14b6d2ffc0e8010f 100644
--- a/chrome/browser/ui/panels/panel_window_controller_cocoa.mm
+++ b/chrome/browser/ui/panels/panel_window_controller_cocoa.mm
@@ -1019,6 +1019,14 @@ enum {
- (void)fullScreenModeChanged:(bool)isFullScreen {
[self updateWindowLevel];
+
+ // The full-screen window is in normal level and changing the panel window to
+ // same normal level will not move it below the full-screen window. Thus we
+ // need to reorder the panel window.
+ if (isFullScreen)
+ [[self window] orderBack];
+ else
+ [[self window] orderFront];
}
- (BOOL)canBecomeKeyWindow {
@@ -1042,8 +1050,9 @@ enum {
if (![self isWindowLoaded])
return;
// Make sure we don't draw on top of a window in full screen mode.
- if (windowShim_->panel()->manager()->is_full_screen() ||
- !windowShim_->panel()->always_on_top()) {
+ Panel* panel = windowShim_->panel();
+ if (panel->manager()->display_settings_provider()->is_full_screen() ||
+ !panel->always_on_top()) {
[[self window] setLevel:NSNormalWindowLevel];
return;
}
@@ -1062,7 +1071,7 @@ enum {
// While this is OK for expanded panels, it makes minimized panels impossible
// to activate. As a result, we still use NSStatusWindowLevel for minimized
// panels, since it's impossible to compose IME text in them anyway.
- if (windowShim_->panel()->IsMinimized()) {
+ if (panel->IsMinimized()) {
[[self window] setLevel:NSStatusWindowLevel];
return;
}

Powered by Google App Engine
This is Rietveld 408576698