| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import "chrome/browser/ui/cocoa/browser_window_controller_private.h" | 5 #import "chrome/browser/ui/cocoa/browser_window_controller_private.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/mac/bind_objc_block.h" | 10 #include "base/mac/bind_objc_block.h" |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 - (void)saveWindowPositionIfNeeded { | 115 - (void)saveWindowPositionIfNeeded { |
| 116 if (!chrome::ShouldSaveWindowPlacement(browser_.get())) | 116 if (!chrome::ShouldSaveWindowPlacement(browser_.get())) |
| 117 return; | 117 return; |
| 118 | 118 |
| 119 // If we're in fullscreen mode, save the position of the regular window | 119 // If we're in fullscreen mode, save the position of the regular window |
| 120 // instead. | 120 // instead. |
| 121 NSWindow* window = | 121 NSWindow* window = |
| 122 [self isInAnyFullscreenMode] ? savedRegularWindow_ : [self window]; | 122 [self isInAnyFullscreenMode] ? savedRegularWindow_ : [self window]; |
| 123 | 123 |
| 124 // Window positions are stored relative to the origin of the primary monitor. | 124 // Window positions are stored relative to the origin of the primary monitor. |
| 125 NSRect monitorFrame = [[[NSScreen screens] objectAtIndex:0] frame]; | 125 NSRect monitorFrame = [[[NSScreen screens] firstObject] frame]; |
| 126 NSScreen* windowScreen = [window screen]; | 126 NSScreen* windowScreen = [window screen]; |
| 127 | 127 |
| 128 // Start with the window's frame, which is in virtual coordinates. | 128 // Start with the window's frame, which is in virtual coordinates. |
| 129 // Do some y twiddling to flip the coordinate system. | 129 // Do some y twiddling to flip the coordinate system. |
| 130 gfx::Rect bounds(NSRectToCGRect([window frame])); | 130 gfx::Rect bounds(NSRectToCGRect([window frame])); |
| 131 bounds.set_y(monitorFrame.size.height - bounds.y() - bounds.height()); | 131 bounds.set_y(monitorFrame.size.height - bounds.y() - bounds.height()); |
| 132 | 132 |
| 133 // Browser::SaveWindowPlacement saves information for session restore. | 133 // Browser::SaveWindowPlacement saves information for session restore. |
| 134 ui::WindowShowState show_state = ui::SHOW_STATE_NORMAL; | 134 ui::WindowShowState show_state = ui::SHOW_STATE_NORMAL; |
| 135 if ([window isMiniaturized]) | 135 if ([window isMiniaturized]) |
| (...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 675 : CANONICAL_FULLSCREEN); | 675 : CANONICAL_FULLSCREEN); |
| 676 | 676 |
| 677 if (notification) // For System Fullscreen when non-nil. | 677 if (notification) // For System Fullscreen when non-nil. |
| 678 [self registerForContentViewResizeNotifications]; | 678 [self registerForContentViewResizeNotifications]; |
| 679 | 679 |
| 680 NSWindow* window = [self window]; | 680 NSWindow* window = [self window]; |
| 681 savedRegularWindowFrame_ = [window frame]; | 681 savedRegularWindowFrame_ = [window frame]; |
| 682 | 682 |
| 683 enteringAppKitFullscreen_ = YES; | 683 enteringAppKitFullscreen_ = YES; |
| 684 enteringAppKitFullscreenOnPrimaryScreen_ = | 684 enteringAppKitFullscreenOnPrimaryScreen_ = |
| 685 [[[self window] screen] isEqual:[[NSScreen screens] objectAtIndex:0]]; | 685 [[[self window] screen] isEqual:[[NSScreen screens] firstObject]]; |
| 686 | 686 |
| 687 fullscreen_mac::SlidingStyle style; | 687 fullscreen_mac::SlidingStyle style; |
| 688 if (browser_->exclusive_access_manager() | 688 if (browser_->exclusive_access_manager() |
| 689 ->fullscreen_controller() | 689 ->fullscreen_controller() |
| 690 ->IsWindowFullscreenForTabOrPending()) { | 690 ->IsWindowFullscreenForTabOrPending()) { |
| 691 style = fullscreen_mac::OMNIBOX_TABS_NONE; | 691 style = fullscreen_mac::OMNIBOX_TABS_NONE; |
| 692 } else if (enteringPresentationMode_) { | 692 } else if (enteringPresentationMode_) { |
| 693 style = fullscreen_mac::OMNIBOX_TABS_HIDDEN; | 693 style = fullscreen_mac::OMNIBOX_TABS_HIDDEN; |
| 694 } else { | 694 } else { |
| 695 style = fullscreen_mac::OMNIBOX_TABS_PRESENT; | 695 style = fullscreen_mac::OMNIBOX_TABS_PRESENT; |
| (...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1091 | 1091 |
| 1092 NSView* root = [[self.window contentView] superview]; | 1092 NSView* root = [[self.window contentView] superview]; |
| 1093 if (!root.layer) | 1093 if (!root.layer) |
| 1094 return NO; | 1094 return NO; |
| 1095 | 1095 |
| 1096 // AppKit on OSX 10.9 has a bug for applications linked against OSX 10.8 SDK | 1096 // AppKit on OSX 10.9 has a bug for applications linked against OSX 10.8 SDK |
| 1097 // and earlier. Under specific circumstances, it prevents the custom AppKit | 1097 // and earlier. Under specific circumstances, it prevents the custom AppKit |
| 1098 // transition from working well. See http://crbug.com/396980 for more | 1098 // transition from working well. See http://crbug.com/396980 for more |
| 1099 // details. | 1099 // details. |
| 1100 if ([[self class] systemSettingsRequireMavericksAppKitFullscreenHack] && | 1100 if ([[self class] systemSettingsRequireMavericksAppKitFullscreenHack] && |
| 1101 ![[[self window] screen] isEqual:[[NSScreen screens] objectAtIndex:0]]) { | 1101 ![[[self window] screen] isEqual:[[NSScreen screens] firstObject]]) { |
| 1102 return NO; | 1102 return NO; |
| 1103 } | 1103 } |
| 1104 | 1104 |
| 1105 return YES; | 1105 return YES; |
| 1106 } | 1106 } |
| 1107 | 1107 |
| 1108 - (NSArray*)customWindowsToEnterFullScreenForWindow:(NSWindow*)window { | 1108 - (NSArray*)customWindowsToEnterFullScreenForWindow:(NSWindow*)window { |
| 1109 DCHECK([window isEqual:self.window]); | 1109 DCHECK([window isEqual:self.window]); |
| 1110 | 1110 |
| 1111 if (![self shouldUseCustomAppKitFullscreenTransition:YES]) | 1111 if (![self shouldUseCustomAppKitFullscreenTransition:YES]) |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1157 return browser_->tab_strip_model()->GetActiveWebContents(); | 1157 return browser_->tab_strip_model()->GetActiveWebContents(); |
| 1158 } | 1158 } |
| 1159 | 1159 |
| 1160 - (PermissionBubbleManager*)permissionBubbleManager { | 1160 - (PermissionBubbleManager*)permissionBubbleManager { |
| 1161 if (WebContents* contents = [self webContents]) | 1161 if (WebContents* contents = [self webContents]) |
| 1162 return PermissionBubbleManager::FromWebContents(contents); | 1162 return PermissionBubbleManager::FromWebContents(contents); |
| 1163 return nil; | 1163 return nil; |
| 1164 } | 1164 } |
| 1165 | 1165 |
| 1166 @end // @implementation BrowserWindowController(Private) | 1166 @end // @implementation BrowserWindowController(Private) |
| OLD | NEW |