Chromium Code Reviews| 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/fullscreen_toolbar_controller.h" | 5 #import "chrome/browser/ui/cocoa/fullscreen_toolbar_controller.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #import "base/mac/mac_util.h" | 10 #import "base/mac/mac_util.h" |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 260 } | 260 } |
| 261 | 261 |
| 262 - (void)windowDidResignMain:(NSNotification*)notification { | 262 - (void)windowDidResignMain:(NSNotification*)notification { |
| 263 [self updateMenuBarAndDockVisibility]; | 263 [self updateMenuBarAndDockVisibility]; |
| 264 } | 264 } |
| 265 | 265 |
| 266 - (CGFloat)floatingBarVerticalOffset { | 266 - (CGFloat)floatingBarVerticalOffset { |
| 267 return kFloatingBarVerticalOffset; | 267 return kFloatingBarVerticalOffset; |
| 268 } | 268 } |
| 269 | 269 |
| 270 - (void)lockBarVisibilityWithAnimation:(BOOL)animate { | |
| 271 isLockingBarVisibility_ = YES; | |
| 272 [self ensureOverlayShownWithAnimation:animate]; | |
| 273 isLockingBarVisibility_ = NO; | |
| 274 } | |
| 275 | |
| 276 - (void)releaseBarVisibilityWithAnimation:(BOOL)animate { | |
| 277 isReleasingBarVisibility_ = YES; | |
| 278 [self ensureOverlayHiddenWithAnimation:animate]; | |
| 279 isReleasingBarVisibility_ = NO; | |
| 280 } | |
| 281 | |
| 270 - (void)ensureOverlayShownWithAnimation:(BOOL)animate { | 282 - (void)ensureOverlayShownWithAnimation:(BOOL)animate { |
|
erikchen
2016/08/31 20:19:50
I notice that this is also called by browser_windo
spqchan
2016/09/07 19:46:48
No, lockBarVisibility and releaseBarVisibility sho
| |
| 271 if (!inFullscreenMode_) | 283 if (!inFullscreenMode_) |
| 272 return; | 284 return; |
| 273 | 285 |
| 274 if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode)) | 286 if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode)) |
| 275 return; | 287 return; |
| 276 | 288 |
| 277 if (self.slidingStyle != fullscreen_mac::OMNIBOX_TABS_HIDDEN) | 289 if (self.slidingStyle != fullscreen_mac::OMNIBOX_TABS_HIDDEN) |
| 278 return; | 290 return; |
| 279 | 291 |
| 280 [self cancelHideTimer]; | 292 [self cancelHideTimer]; |
| 281 [self animateToolbarVisibility:YES]; | 293 [self animateToolbarVisibility:YES]; |
| 282 } | 294 } |
| 283 | 295 |
| 284 - (void)ensureOverlayHiddenWithAnimation:(BOOL)animate { | 296 - (void)ensureOverlayHiddenWithAnimation:(BOOL)animate { |
| 285 if (!inFullscreenMode_) | 297 if (!inFullscreenMode_) |
| 286 return; | 298 return; |
| 287 | 299 |
| 288 if (self.slidingStyle != fullscreen_mac::OMNIBOX_TABS_HIDDEN) | 300 if (self.slidingStyle != fullscreen_mac::OMNIBOX_TABS_HIDDEN) |
| 289 return; | 301 return; |
| 290 | 302 |
| 303 if ([browserController_ isBarVisibilityLockedForOwner:nil] && | |
|
erikchen
2016/08/31 20:19:50
I don't see how this condition could ever return t
spqchan
2016/09/07 19:46:48
ensureOverlayHiddenWithAnimation can be called whe
| |
| 304 !isReleasingBarVisibility_) { | |
| 305 return; | |
| 306 } | |
| 307 | |
| 308 if ([self mouseInsideTrackingArea] || menubarFraction_ == kShowFraction) | |
| 309 return; | |
| 310 | |
| 291 [self cancelHideTimer]; | 311 [self cancelHideTimer]; |
| 292 [self animateToolbarVisibility:NO]; | 312 [self animateToolbarVisibility:NO]; |
| 293 } | 313 } |
| 294 | 314 |
| 295 - (void)cancelAnimationAndTimer { | 315 - (void)cancelAnimationAndTimer { |
| 296 [self cancelHideTimer]; | 316 [self cancelHideTimer]; |
| 297 [currentAnimation_ stopAnimation]; | 317 [currentAnimation_ stopAnimation]; |
| 298 currentAnimation_.reset(); | 318 currentAnimation_.reset(); |
| 299 } | 319 } |
| 300 | 320 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 361 - (CGFloat)menubarOffset { | 381 - (CGFloat)menubarOffset { |
| 362 if ([browserController_ isInAppKitFullscreen]) | 382 if ([browserController_ isInAppKitFullscreen]) |
| 363 return -std::floor(menubarFraction_ * [self floatingBarVerticalOffset]); | 383 return -std::floor(menubarFraction_ * [self floatingBarVerticalOffset]); |
| 364 | 384 |
| 365 return [self shouldShowMenubarInImmersiveFullscreen] | 385 return [self shouldShowMenubarInImmersiveFullscreen] |
| 366 ? -[self floatingBarVerticalOffset] | 386 ? -[self floatingBarVerticalOffset] |
| 367 : 0; | 387 : 0; |
| 368 } | 388 } |
| 369 | 389 |
| 370 - (CGFloat)toolbarFraction { | 390 - (CGFloat)toolbarFraction { |
| 371 if ([browserController_ isBarVisibilityLockedForOwner:nil]) | |
| 372 return kShowFraction; | |
| 373 | |
| 374 if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode)) | 391 if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode)) |
| 375 return kHideFraction; | 392 return kHideFraction; |
| 376 | 393 |
| 377 switch (slidingStyle_) { | 394 switch (slidingStyle_) { |
| 378 case fullscreen_mac::OMNIBOX_TABS_PRESENT: | 395 case fullscreen_mac::OMNIBOX_TABS_PRESENT: |
| 379 return kShowFraction; | 396 return kShowFraction; |
| 380 case fullscreen_mac::OMNIBOX_TABS_NONE: | 397 case fullscreen_mac::OMNIBOX_TABS_NONE: |
| 381 return kHideFraction; | 398 return kHideFraction; |
| 382 case fullscreen_mac::OMNIBOX_TABS_HIDDEN: | 399 case fullscreen_mac::OMNIBOX_TABS_HIDDEN: |
| 400 if (IsCGFloatEqual(menubarFraction_, kShowFraction)) | |
| 401 return kShowFraction; | |
| 402 | |
| 383 if (currentAnimation_.get()) | 403 if (currentAnimation_.get()) |
| 384 return [currentAnimation_ toolbarFraction]; | 404 return [currentAnimation_ toolbarFraction]; |
| 385 | 405 |
| 386 if (hideTimer_.get() || shouldAnimateToolbarOut_) | 406 if (hideTimer_.get() || shouldAnimateToolbarOut_) |
| 387 return kShowFraction; | 407 return kShowFraction; |
| 388 | 408 |
| 409 if (isLockingBarVisibility_) | |
| 410 return kHideFraction; | |
|
erikchen
2016/08/31 20:19:50
I see what you're doing here, but I think this wil
spqchan
2016/09/07 19:46:48
True. Updated the logic so that if the menubar is
| |
| 411 else if (isReleasingBarVisibility_) | |
| 412 return kShowFraction; | |
| 413 else if ([browserController_ isBarVisibilityLockedForOwner:nil]) | |
| 414 return kShowFraction; | |
| 415 | |
| 389 return toolbarFractionFromMenuProgress_; | 416 return toolbarFractionFromMenuProgress_; |
| 390 } | 417 } |
| 391 } | 418 } |
| 392 | 419 |
| 393 - (BOOL)isFullscreenTransitionInProgress { | 420 - (BOOL)isFullscreenTransitionInProgress { |
| 394 return [browserController_ isFullscreenTransitionInProgress]; | 421 return [browserController_ isFullscreenTransitionInProgress]; |
| 395 } | 422 } |
| 396 | 423 |
| 397 - (BOOL)isInFullscreen { | 424 - (BOOL)isInFullscreen { |
| 398 return inFullscreenMode_; | 425 return inFullscreenMode_; |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 600 | 627 |
| 601 // No more calls back up to the BWC. | 628 // No more calls back up to the BWC. |
| 602 browserController_ = nil; | 629 browserController_ = nil; |
| 603 } | 630 } |
| 604 | 631 |
| 605 - (BOOL)shouldShowMenubarInImmersiveFullscreen { | 632 - (BOOL)shouldShowMenubarInImmersiveFullscreen { |
| 606 return [self doesScreenHaveMenuBar] && [self toolbarFraction] > 0.99; | 633 return [self doesScreenHaveMenuBar] && [self toolbarFraction] > 0.99; |
| 607 } | 634 } |
| 608 | 635 |
| 609 @end | 636 @end |
| OLD | NEW |