| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/apps/app_shim_menu_controller_mac.h" | 5 #import "chrome/browser/ui/cocoa/apps/app_shim_menu_controller_mac.h" |
| 6 | 6 |
| 7 #include "base/mac/scoped_nsautorelease_pool.h" | 7 #include "base/mac/scoped_nsautorelease_pool.h" |
| 8 #include "base/strings/sys_string_conversions.h" | 8 #include "base/strings/sys_string_conversions.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "chrome/app/chrome_command_ids.h" | 10 #include "chrome/app/chrome_command_ids.h" |
| (...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 387 extension = appWindow->GetExtension(); | 387 extension = appWindow->GetExtension(); |
| 388 else | 388 else |
| 389 extension = apps::ExtensionAppShimHandler::GetAppForBrowser( | 389 extension = apps::ExtensionAppShimHandler::GetAppForBrowser( |
| 390 chrome::FindBrowserWithWindow(window)); | 390 chrome::FindBrowserWithWindow(window)); |
| 391 | 391 |
| 392 if (extension) | 392 if (extension) |
| 393 [self addMenuItems:extension]; | 393 [self addMenuItems:extension]; |
| 394 else | 394 else |
| 395 [self removeMenuItems]; | 395 [self removeMenuItems]; |
| 396 } else if ([name isEqualToString:NSWindowWillCloseNotification]) { | 396 } else if ([name isEqualToString:NSWindowWillCloseNotification]) { |
| 397 // Always reset back to the Chrome menu. This once scanned [NSApp windows] | 397 // If the window being closed has main status, reset back to the Chrome |
| 398 // to predict whether we could expect another Chrome window to become main, | 398 // menu. This once scanned [NSApp windows] to predict whether we could |
| 399 // and skip the reset. However, panels need to do strange things during | 399 // expect another Chrome window to become main, and skip the reset. However, |
| 400 // window close to ensure panels never get chosen for key status over a | 400 // panels need to do strange things during window close to ensure panels |
| 401 // browser window (which is likely because they are given an elevated | 401 // never get chosen for key status over a browser window (which is likely |
| 402 // [NSWindow level]). Trying to handle this case is not robust. | 402 // because they are given an elevated [NSWindow level]). Trying to handle |
| 403 // Unfortunately, resetting the menu to Chrome unconditionally means that | 403 // this case is not robust. Unfortunately, resetting the menu to Chrome |
| 404 // if another packaged app window becomes key, the menu will flicker. | 404 // unconditionally means that if another packaged app window becomes key, |
| 405 // TODO(tapted): Investigate restoring the logic when the panel code is | 405 // the menu will flicker. TODO(tapted): Investigate restoring the logic when |
| 406 // removed. | 406 // the panel code is removed. |
| 407 [self removeMenuItems]; | 407 if ([[notification object] isMainWindow]) |
| 408 [self removeMenuItems]; |
| 408 } else { | 409 } else { |
| 409 NOTREACHED(); | 410 NOTREACHED(); |
| 410 } | 411 } |
| 411 } | 412 } |
| 412 | 413 |
| 413 - (void)addMenuItems:(const extensions::Extension*)app { | 414 - (void)addMenuItems:(const extensions::Extension*)app { |
| 414 NSString* appId = base::SysUTF8ToNSString(app->id()); | 415 NSString* appId = base::SysUTF8ToNSString(app->id()); |
| 415 NSString* title = base::SysUTF8ToNSString(app->name()); | 416 NSString* title = base::SysUTF8ToNSString(app->name()); |
| 416 | 417 |
| 417 if ([appId_ isEqualToString:appId]) | 418 if ([appId_ isEqualToString:appId]) |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 514 | 515 |
| 515 - (void)focusCurrentPlatformApp { | 516 - (void)focusCurrentPlatformApp { |
| 516 extensions::AppWindow* appWindow = | 517 extensions::AppWindow* appWindow = |
| 517 AppWindowRegistryUtil::GetAppWindowForNativeWindowAnyProfile( | 518 AppWindowRegistryUtil::GetAppWindowForNativeWindowAnyProfile( |
| 518 [NSApp keyWindow]); | 519 [NSApp keyWindow]); |
| 519 if (appWindow) | 520 if (appWindow) |
| 520 apps::ExtensionAppShimHandler::FocusAppForWindow(appWindow); | 521 apps::ExtensionAppShimHandler::FocusAppForWindow(appWindow); |
| 521 } | 522 } |
| 522 | 523 |
| 523 @end | 524 @end |
| OLD | NEW |