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

Unified Diff: chrome/browser/ui/cocoa/browser_window_controller_private.mm

Issue 7890056: FullscreenExitBubble temp UI for Mac. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: fix url? Created 9 years, 3 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/cocoa/browser_window_controller_private.mm
diff --git a/chrome/browser/ui/cocoa/browser_window_controller_private.mm b/chrome/browser/ui/cocoa/browser_window_controller_private.mm
index 3a4b410bd25d04ecdff8aa6ebcf7d7596f9a8f27..247eb0608da4650b205c3ab253a787d0d6a4ee3c 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller_private.mm
+++ b/chrome/browser/ui/cocoa/browser_window_controller_private.mm
@@ -683,7 +683,9 @@ willPositionSheet:(NSWindow*)sheet
return;
if (presentationMode) {
- BOOL showDropdown = forceDropdown || [self floatingBarHasFocus];
+ BOOL fullscreen_for_tab = browser_->is_fullscreen_for_tab();
+ BOOL showDropdown = !fullscreen_for_tab &&
+ (forceDropdown || [self floatingBarHasFocus]);
NSView* contentView = [[self window] contentView];
presentationModeController_.reset(
[[PresentationModeController alloc] initWithBrowserController:self]);
@@ -790,6 +792,30 @@ willPositionSheet:(NSWindow*)sheet
: [toolbarController_ view]];
}
+- (void)showFullscreenExitBubbleIfNecessary {
+ if (!browser_->is_fullscreen_for_tab()) {
+ return;
+ }
+
+ [presentationModeController_ ensureOverlayHiddenWithAnimation:NO delay:NO];
+
+ fullscreenExitBubbleController_.reset(
+ [[FullscreenExitBubbleController alloc] initWithOwner:self
+ browser:browser_.get()]);
+ NSView* contentView = [[self window] contentView];
+ CGFloat maxWidth = NSWidth([contentView frame]);
+ CGFloat maxY = NSMaxY([[[self window] contentView] frame]);
+ [fullscreenExitBubbleController_
+ positionInWindowAtTop:maxY width:maxWidth];
+ [contentView addSubview:[fullscreenExitBubbleController_ view]
+ positioned:NSWindowAbove relativeTo:[self tabContentArea]];
+}
+
+- (void)destroyFullscreenExitBubbleIfNecessary {
+ [[fullscreenExitBubbleController_ view] removeFromSuperview];
+ fullscreenExitBubbleController_.reset();
+}
+
- (void)contentViewDidResize:(NSNotification*)notification {
[self layoutSubviews];
}
@@ -827,6 +853,7 @@ willPositionSheet:(NSWindow*)sheet
NSWindow* window = [self window];
savedRegularWindowFrame_ = [window frame];
BOOL mode = [self shouldUsePresentationModeWhenEnteringFullscreen];
+ mode = mode || browser_->is_fullscreen_for_tab();
[self setPresentationModeInternal:mode forceDropdown:NO];
}

Powered by Google App Engine
This is Rietveld 408576698