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

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

Issue 7003036: Fix OS full-screen button on FutureCat (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 6 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
« no previous file with comments | « no previous file | chrome/browser/ui/cocoa/browser_window_controller_private.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 - (NSRect)_growBoxRect; 150 - (NSRect)_growBoxRect;
151 151
152 @end 152 @end
153 153
154 // Provide the forward-declarations of new 10.7 SDK symbols so they can be 154 // Provide the forward-declarations of new 10.7 SDK symbols so they can be
155 // called when building with the 10.5 SDK. 155 // called when building with the 10.5 SDK.
156 #if !defined(MAC_OS_X_VERSION_10_7) || \ 156 #if !defined(MAC_OS_X_VERSION_10_7) || \
157 MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7 157 MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
158 158
159 @interface NSWindow (LionSDKDeclarations) 159 @interface NSWindow (LionSDKDeclarations)
160 - (void)toggleFullScreen:(id)sender;
161 - (void)setRestorable:(BOOL)flag; 160 - (void)setRestorable:(BOOL)flag;
162 @end 161 @end
163 162
164 enum {
165 NSWindowCollectionBehaviorFullScreenPrimary = 1 << 7,
166 NSWindowCollectionBehaviorFullScreenAuxiliary = 1 << 8
167 };
168
169 enum {
170 NSWindowFullScreenButton = 7
171 };
172
173 #endif // MAC_OS_X_VERSION_10_7 163 #endif // MAC_OS_X_VERSION_10_7
174 164
175 // IncognitoImageView subclasses NSView to allow mouse events to pass through it 165 // IncognitoImageView subclasses NSView to allow mouse events to pass through it
176 // so you can drag the window by dragging on the spy guy. 166 // so you can drag the window by dragging on the spy guy.
177 @interface IncognitoImageView : NSView { 167 @interface IncognitoImageView : NSView {
178 @private 168 @private
179 scoped_nsobject<NSImage> image_; 169 scoped_nsobject<NSImage> image_;
180 } 170 }
181 171
182 - (void)setImage:(NSImage*)image; 172 - (void)setImage:(NSImage*)image;
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 addObserver:self 400 addObserver:self
411 selector:@selector(applicationDidUnhide:) 401 selector:@selector(applicationDidUnhide:)
412 name:NSApplicationDidUnhideNotification 402 name:NSApplicationDidUnhideNotification
413 object:nil]; 403 object:nil];
414 404
415 // This must be done after the view is added to the window since it relies 405 // This must be done after the view is added to the window since it relies
416 // on the window bounds to determine whether to show buttons or not. 406 // on the window bounds to determine whether to show buttons or not.
417 if ([self hasToolbar]) // Do not create the buttons in popups. 407 if ([self hasToolbar]) // Do not create the buttons in popups.
418 [toolbarController_ createBrowserActionButtons]; 408 [toolbarController_ createBrowserActionButtons];
419 409
420 // For versions of Mac OS that provide an "enter fullscreen" button, make 410 [self setUpOSFullScreenButton];
421 // one appear (in a rather hacky manner). http://crbug.com/74065 : When
422 // switching the fullscreen implementation to the new API, revisit how much
423 // of this hacky code is necessary.
424 if ([window respondsToSelector:@selector(toggleFullScreen:)]) {
425 NSWindowCollectionBehavior behavior = [window collectionBehavior];
426 behavior |= NSWindowCollectionBehaviorFullScreenPrimary;
427 [window setCollectionBehavior:behavior];
428
429 NSButton* fullscreenButton =
430 [window standardWindowButton:NSWindowFullScreenButton];
431 [fullscreenButton setAction:@selector(enterFullscreen:)];
432 [fullscreenButton setTarget:self];
433 }
434 411
435 // We are done initializing now. 412 // We are done initializing now.
436 initializing_ = NO; 413 initializing_ = NO;
437 } 414 }
438 return self; 415 return self;
439 } 416 }
440 417
441 - (void)dealloc { 418 - (void)dealloc {
442 browser_->CloseAllTabs(); 419 browser_->CloseAllTabs();
443 [downloadShelfController_ exiting]; 420 [downloadShelfController_ exiting];
(...skipping 1609 matching lines...) Expand 10 before | Expand all | Expand 10 after
2053 NSWindowCollectionBehaviorMoveToActiveSpace]; 2030 NSWindowCollectionBehaviorMoveToActiveSpace];
2054 [destWindow makeKeyAndOrderFront:self]; 2031 [destWindow makeKeyAndOrderFront:self];
2055 [destWindow setCollectionBehavior:behavior]; 2032 [destWindow setCollectionBehavior:behavior];
2056 2033
2057 [focusTracker restoreFocusInWindow:destWindow]; 2034 [focusTracker restoreFocusInWindow:destWindow];
2058 [window orderOut:self]; 2035 [window orderOut:self];
2059 2036
2060 // We're done moving focus, so re-enable bar visibility changes. 2037 // We're done moving focus, so re-enable bar visibility changes.
2061 [self enableBarVisibilityUpdates]; 2038 [self enableBarVisibilityUpdates];
2062 2039
2040 // This needs to be done when leaving full-screen mode to ensure that the
2041 // button's action is set properly.
2042 [self setUpOSFullScreenButton];
2043
2063 // Fade back in. 2044 // Fade back in.
2064 if (didFadeOut) { 2045 if (didFadeOut) {
2065 CGDisplayFade(token, kFadeDurationSeconds / 2, kCGDisplayBlendSolidColor, 2046 CGDisplayFade(token, kFadeDurationSeconds / 2, kCGDisplayBlendSolidColor,
2066 kCGDisplayBlendNormal, 0.0, 0.0, 0.0, /*synchronous=*/false); 2047 kCGDisplayBlendNormal, 0.0, 0.0, 0.0, /*synchronous=*/false);
2067 CGReleaseDisplayFadeReservation(token); 2048 CGReleaseDisplayFadeReservation(token);
2068 } 2049 }
2069 } 2050 }
2070 2051
2071 - (BOOL)isFullscreen { 2052 - (BOOL)isFullscreen {
2072 return fullscreenController_.get() && [fullscreenController_ isFullscreen]; 2053 return fullscreenController_.get() && [fullscreenController_ isFullscreen];
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
2196 2177
2197 - (BOOL)supportsBookmarkBar { 2178 - (BOOL)supportsBookmarkBar {
2198 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR]; 2179 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR];
2199 } 2180 }
2200 2181
2201 - (BOOL)isTabbedWindow { 2182 - (BOOL)isTabbedWindow {
2202 return browser_->is_type_tabbed(); 2183 return browser_->is_type_tabbed();
2203 } 2184 }
2204 2185
2205 @end // @implementation BrowserWindowController(WindowType) 2186 @end // @implementation BrowserWindowController(WindowType)
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/cocoa/browser_window_controller_private.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698