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

Side by Side Diff: chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.mm

Issue 2671073002: [Mac] Fullscreen layout issues (Closed)
Patch Set: Created 3 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/fullscreen/fullscreen_toolbar_controller.h" 5 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "chrome/browser/profiles/profile.h" 8 #include "chrome/browser/profiles/profile.h"
9 #import "chrome/browser/ui/cocoa/browser_window_controller.h" 9 #import "chrome/browser/ui/cocoa/browser_window_controller.h"
10 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_menubar_tracker.h" 10 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_menubar_tracker.h"
11 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_control ler.h" 11 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_animation_control ler.h"
12 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_mouse_tracker.h" 12 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_mouse_tracker.h"
13 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_c ontroller.h" 13 #import "chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_visibility_lock_c ontroller.h"
14 #import "chrome/browser/ui/cocoa/fullscreen/immersive_fullscreen_controller.h" 14 #import "chrome/browser/ui/cocoa/fullscreen/immersive_fullscreen_controller.h"
15 #include "chrome/common/chrome_switches.h" 15 #include "chrome/common/chrome_switches.h"
16 #include "chrome/common/pref_names.h" 16 #include "chrome/common/pref_names.h"
17 17
18 namespace { 18 namespace {
19 19
20 // Visibility fractions for the menubar and toolbar. 20 // Visibility fractions for the menubar and toolbar.
21 const CGFloat kHideFraction = 0.0; 21 const CGFloat kHideFraction = 0.0;
22 const CGFloat kShowFraction = 1.0; 22 const CGFloat kShowFraction = 1.0;
23 23
24 // The amount by which the toolbar is offset downwards (to avoid the menu)
25 // when the toolbar style is TOOLBAR_HIDDEN. (We can't use
26 // |-[NSMenu menuBarHeight]| since it returns 0 when the menu bar is hidden.)
27 const CGFloat kToolbarVerticalOffset = -22;
28
29 } // end namespace 24 } // end namespace
30 25
31 @implementation FullscreenToolbarController 26 @implementation FullscreenToolbarController
32 27
33 - (id)initWithBrowserController:(BrowserWindowController*)controller { 28 - (id)initWithBrowserController:(BrowserWindowController*)controller {
34 if ((self = [super init])) { 29 if ((self = [super init])) {
35 browserController_ = controller; 30 browserController_ = controller;
36 animationController_.reset(new FullscreenToolbarAnimationController(self)); 31 animationController_.reset(new FullscreenToolbarAnimationController(self));
37 visibilityLockController_.reset( 32 visibilityLockController_.reset(
38 [[FullscreenToolbarVisibilityLockController alloc] 33 [[FullscreenToolbarVisibilityLockController alloc]
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 109
115 return [menubarTracker_ menubarFraction]; 110 return [menubarTracker_ menubarFraction];
116 } 111 }
117 } 112 }
118 113
119 - (FullscreenToolbarLayout)computeLayout { 114 - (FullscreenToolbarLayout)computeLayout {
120 FullscreenToolbarLayout layout; 115 FullscreenToolbarLayout layout;
121 layout.toolbarStyle = toolbarStyle_; 116 layout.toolbarStyle = toolbarStyle_;
122 layout.toolbarFraction = [self toolbarFraction]; 117 layout.toolbarFraction = [self toolbarFraction];
123 118
119 // Calculate how much the toolbar is offset downwards to avoid the menu.
124 if ([browserController_ isInAppKitFullscreen]) { 120 if ([browserController_ isInAppKitFullscreen]) {
125 layout.menubarOffset = [menubarTracker_ menubarFraction]; 121 layout.menubarOffset = [menubarTracker_ menubarFraction];
126 } else { 122 } else {
127 layout.menubarOffset = 123 layout.menubarOffset =
128 [immersiveFullscreenController_ shouldShowMenubar] ? 1 : 0; 124 [immersiveFullscreenController_ shouldShowMenubar] ? 1 : 0;
129 } 125 }
130 layout.menubarOffset *= kToolbarVerticalOffset; 126 layout.menubarOffset *= -[browserController_ menubarHeight];
131 127
132 return layout; 128 return layout;
133 } 129 }
134 130
135 - (BOOL)mustShowFullscreenToolbar { 131 - (BOOL)mustShowFullscreenToolbar {
136 if (!inFullscreenMode_) 132 if (!inFullscreenMode_)
137 return NO; 133 return NO;
138 134
139 if (toolbarStyle_ == FullscreenToolbarStyle::TOOLBAR_PRESENT) 135 if (toolbarStyle_ == FullscreenToolbarStyle::TOOLBAR_PRESENT)
140 return YES; 136 return YES;
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 } 201 }
206 202
207 - (void)setToolbarStyle:(FullscreenToolbarStyle)style { 203 - (void)setToolbarStyle:(FullscreenToolbarStyle)style {
208 toolbarStyle_ = style; 204 toolbarStyle_ = style;
209 } 205 }
210 206
211 - (void)setTestFullscreenMode:(BOOL)isInFullscreen { 207 - (void)setTestFullscreenMode:(BOOL)isInFullscreen {
212 inFullscreenMode_ = isInFullscreen; 208 inFullscreenMode_ = isInFullscreen;
213 } 209 }
214 210
215 - (CGFloat)toolbarVerticalOffset {
216 return kToolbarVerticalOffset;
217 }
218
219 @end 211 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698