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

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 linux asan 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
« no previous file with comments | « chrome/browser/ui/panels/panel_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 cad5731297d4054e076e8fa910456ed5fb383844..461c97ec6645ae938fc25322df6020c2fb45dbe5 100644
--- a/chrome/browser/ui/panels/panel_window_controller_cocoa.mm
+++ b/chrome/browser/ui/panels/panel_window_controller_cocoa.mm
@@ -1030,6 +1030,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:nil];
+ else
+ [[self window] orderFrontRegardless];
}
- (BOOL)canBecomeKeyWindow {
@@ -1053,8 +1061,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;
}
@@ -1073,7 +1082,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;
}
« no previous file with comments | « chrome/browser/ui/panels/panel_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698