| Index: chrome/browser/ui/cocoa/browser_window_cocoa.mm
|
| diff --git a/chrome/browser/ui/cocoa/browser_window_cocoa.mm b/chrome/browser/ui/cocoa/browser_window_cocoa.mm
|
| index 5faefc7418f4eef97825059f7abeb76cde9ba57e..c87c61ab501df3e2d5785898642ebcc37eccad1c 100644
|
| --- a/chrome/browser/ui/cocoa/browser_window_cocoa.mm
|
| +++ b/chrome/browser/ui/cocoa/browser_window_cocoa.mm
|
| @@ -44,11 +44,31 @@
|
| #include "grit/chromium_strings.h"
|
| #include "grit/generated_resources.h"
|
| #include "ui/base/l10n/l10n_util_mac.h"
|
| +#include "ui/base/ui_base_types.h"
|
| #include "ui/gfx/rect.h"
|
|
|
| +// Replicate specific 10.7 SDK declarations for building with prior SDKs.
|
| +#if !defined(MAC_OS_X_VERSION_10_7) || \
|
| + MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
|
| +
|
| +enum {
|
| + NSWindowAnimationBehaviorDefault = 0,
|
| + NSWindowAnimationBehaviorNone = 2,
|
| + NSWindowAnimationBehaviorDocumentWindow = 3,
|
| + NSWindowAnimationBehaviorUtilityWindow = 4,
|
| + NSWindowAnimationBehaviorAlertPanel = 5
|
| +};
|
| +typedef NSInteger NSWindowAnimationBehavior;
|
| +
|
| +@interface NSWindow (LionSDKDeclarations)
|
| +- (NSWindowAnimationBehavior)animationBehavior;
|
| +- (void)setAnimationBehavior:(NSWindowAnimationBehavior)newAnimationBehavior;
|
| +@end
|
| +
|
| +#endif // MAC_OS_X_VERSION_10_7
|
| +
|
| BrowserWindowCocoa::BrowserWindowCocoa(Browser* browser,
|
| - BrowserWindowController* controller,
|
| - NSWindow* window)
|
| + BrowserWindowController* controller)
|
| : browser_(browser),
|
| controller_(controller),
|
| confirm_close_factory_(browser) {
|
| @@ -73,11 +93,35 @@ void BrowserWindowCocoa::Show() {
|
| // the previous browser instead if we don't explicitly set it here.
|
| BrowserList::SetLastActive(browser_);
|
|
|
| - [window() makeKeyAndOrderFront:controller_];
|
| + ui::WindowShowState show_state = browser_->GetSavedWindowShowState();
|
| + if (show_state == ui::SHOW_STATE_MINIMIZED) {
|
| + // Turn off swishing when restoring minimized windows. When creating
|
| + // windows from nibs it is necessary to |orderFront:| prior to |orderOut:|
|
| + // then |miniaturize:| when restoring windows in the minimized state.
|
| + NSWindowAnimationBehavior savedAnimationBehavior = 0;
|
| + if ([window() respondsToSelector:@selector(animationBehavior)] &&
|
| + [window() respondsToSelector:@selector(setAnimationBehavior:)]) {
|
| + savedAnimationBehavior = [window() animationBehavior];
|
| + [window() setAnimationBehavior:NSWindowAnimationBehaviorNone];
|
| + }
|
| +
|
| + [window() makeKeyAndOrderFront:controller_];
|
| +
|
| + [window() orderOut:controller_];
|
| + [window() miniaturize:controller_];
|
| +
|
| + // Restore window animation behavior.
|
| + if ([window() respondsToSelector:@selector(animationBehavior)] &&
|
| + [window() respondsToSelector:@selector(setAnimationBehavior:)]) {
|
| + [window() setAnimationBehavior:savedAnimationBehavior];
|
| + }
|
| + } else {
|
| + [window() makeKeyAndOrderFront:controller_];
|
| + }
|
| }
|
|
|
| void BrowserWindowCocoa::ShowInactive() {
|
| - [window() orderFront:controller_];
|
| + [window() orderFront:controller_];
|
| }
|
|
|
| void BrowserWindowCocoa::SetBounds(const gfx::Rect& bounds) {
|
| @@ -214,6 +258,10 @@ bool BrowserWindowCocoa::IsMaximized() const {
|
| return [window() isZoomed];
|
| }
|
|
|
| +bool BrowserWindowCocoa::IsMinimized() const {
|
| + return [window() isMiniaturized];
|
| +}
|
| +
|
| void BrowserWindowCocoa::SetFullscreen(bool fullscreen) {
|
| [controller_ setFullscreen:fullscreen];
|
| }
|
|
|