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

Side by Side Diff: chrome/browser/ui/cocoa/browser_window_controller.mm

Issue 6543012: [Mac] Fix cut-off Browser chrome when opening Tabpose with an infobar showing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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.h" 5 #import "chrome/browser/ui/cocoa/browser_window_controller.h"
6 6
7 #include <Carbon/Carbon.h> 7 #include <Carbon/Carbon.h>
8 8
9 #include "app/mac/scoped_nsdisable_screen_updates.h" 9 #include "app/mac/scoped_nsdisable_screen_updates.h"
10 #include "app/mac/nsimage_cache.h" 10 #include "app/mac/nsimage_cache.h"
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 } 417 }
418 418
419 - (ToolbarController*)toolbarController { 419 - (ToolbarController*)toolbarController {
420 return toolbarController_.get(); 420 return toolbarController_.get();
421 } 421 }
422 422
423 - (TabStripController*)tabStripController { 423 - (TabStripController*)tabStripController {
424 return tabStripController_.get(); 424 return tabStripController_.get();
425 } 425 }
426 426
427 - (InfoBarContainerController*)infoBarContainerController {
428 return infoBarContainerController_.get();
429 }
430
427 - (StatusBubbleMac*)statusBubble { 431 - (StatusBubbleMac*)statusBubble {
428 return statusBubble_; 432 return statusBubble_;
429 } 433 }
430 434
431 - (LocationBarViewMac*)locationBarBridge { 435 - (LocationBarViewMac*)locationBarBridge {
432 return [toolbarController_ locationBarBridge]; 436 return [toolbarController_ locationBarBridge];
433 } 437 }
434 438
435 - (void)destroyBrowser { 439 - (void)destroyBrowser {
436 [NSApp removeWindowsItem:[self window]]; 440 [NSApp removeWindowsItem:[self window]];
(...skipping 1595 matching lines...) Expand 10 before | Expand all | Expand 10 after
2032 delay:delay]; 2036 delay:delay];
2033 } 2037 }
2034 } 2038 }
2035 } 2039 }
2036 2040
2037 - (BOOL)floatingBarHasFocus { 2041 - (BOOL)floatingBarHasFocus {
2038 NSResponder* focused = [[self window] firstResponder]; 2042 NSResponder* focused = [[self window] firstResponder];
2039 return [focused isKindOfClass:[AutocompleteTextFieldEditor class]]; 2043 return [focused isKindOfClass:[AutocompleteTextFieldEditor class]];
2040 } 2044 }
2041 2045
2046 - (void)tabposeWillClose:(NSNotification*)notif {
2047 // Re-show the container after Tabpose closes.
2048 [[infoBarContainerController_ view] setHidden:NO];
2049 }
2050
2042 - (void)openTabpose { 2051 - (void)openTabpose {
2043 NSUInteger modifierFlags = [[NSApp currentEvent] modifierFlags]; 2052 NSUInteger modifierFlags = [[NSApp currentEvent] modifierFlags];
2044 BOOL slomo = (modifierFlags & NSShiftKeyMask) != 0; 2053 BOOL slomo = (modifierFlags & NSShiftKeyMask) != 0;
2045 2054
2046 // Cover info bars, inspector window, and detached bookmark bar on NTP. 2055 // Cover info bars, inspector window, and detached bookmark bar on NTP.
2047 // Do not cover download shelf. 2056 // Do not cover download shelf.
2048 NSRect activeArea = [[self tabContentArea] frame]; 2057 NSRect activeArea = [[self tabContentArea] frame];
2058 // Take out the anti-spoof height so that Tabpose doesn't draw on top of the
2059 // browser chrome.
2049 activeArea.size.height += 2060 activeArea.size.height +=
2050 NSHeight([[infoBarContainerController_ view] frame]); 2061 NSHeight([[infoBarContainerController_ view] frame]) -
2062 [infoBarContainerController_ antiSpoofHeight];
2051 if ([self isBookmarkBarVisible] && [self placeBookmarkBarBelowInfoBar]) { 2063 if ([self isBookmarkBarVisible] && [self placeBookmarkBarBelowInfoBar]) {
2052 NSView* bookmarkBarView = [bookmarkBarController_ view]; 2064 NSView* bookmarkBarView = [bookmarkBarController_ view];
2053 activeArea.size.height += NSHeight([bookmarkBarView frame]); 2065 activeArea.size.height += NSHeight([bookmarkBarView frame]);
2054 } 2066 }
2055 2067
2056 [TabposeWindow openTabposeFor:[self window] 2068 // Hide the infobar container so that the anti-spoof bulge doesn't show when
2057 rect:activeArea 2069 // Tabpose is open.
2058 slomo:slomo 2070 [[infoBarContainerController_ view] setHidden:YES];
2059 tabStripModel:browser_->tabstrip_model()]; 2071
2072 TabposeWindow* window =
2073 [TabposeWindow openTabposeFor:[self window]
2074 rect:activeArea
2075 slomo:slomo
2076 tabStripModel:browser_->tabstrip_model()];
2077
2078 // When the Tabpose window closes, the infobar container needs to be made
2079 // visible again.
2080 NSNotificationCenter* center = [NSNotificationCenter defaultCenter];
2081 [center addObserver:self
2082 selector:@selector(tabposeWillClose:)
2083 name:NSWindowWillCloseNotification
2084 object:window];
2060 } 2085 }
2061 2086
2062 @end // @implementation BrowserWindowController(Fullscreen) 2087 @end // @implementation BrowserWindowController(Fullscreen)
2063 2088
2064 2089
2065 @implementation BrowserWindowController(WindowType) 2090 @implementation BrowserWindowController(WindowType)
2066 2091
2067 - (BOOL)supportsWindowFeature:(int)feature { 2092 - (BOOL)supportsWindowFeature:(int)feature {
2068 return browser_->SupportsWindowFeature( 2093 return browser_->SupportsWindowFeature(
2069 static_cast<Browser::WindowFeature>(feature)); 2094 static_cast<Browser::WindowFeature>(feature));
(...skipping 13 matching lines...) Expand all
2083 2108
2084 - (BOOL)supportsBookmarkBar { 2109 - (BOOL)supportsBookmarkBar {
2085 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR]; 2110 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR];
2086 } 2111 }
2087 2112
2088 - (BOOL)isNormalWindow { 2113 - (BOOL)isNormalWindow {
2089 return browser_->type() == Browser::TYPE_NORMAL; 2114 return browser_->type() == Browser::TYPE_NORMAL;
2090 } 2115 }
2091 2116
2092 @end // @implementation BrowserWindowController(WindowType) 2117 @end // @implementation BrowserWindowController(WindowType)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698