Chromium Code Reviews| Index: apps/app_shim/app_shim_host_mac.cc |
| diff --git a/apps/app_shim/app_shim_host_mac.cc b/apps/app_shim/app_shim_host_mac.cc |
| index 8cff755a21ef674490d6cee2a904e1a9f439fb22..305a35557719f3dd61003eae281e1249de49101f 100644 |
| --- a/apps/app_shim/app_shim_host_mac.cc |
| +++ b/apps/app_shim/app_shim_host_mac.cc |
| @@ -15,8 +15,10 @@ |
| #include "chrome/browser/extensions/shell_window_registry.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| #include "chrome/browser/ui/extensions/application_launch.h" |
| +#include "chrome/browser/ui/extensions/shell_window.h" |
| #include "chrome/common/extensions/extension_constants.h" |
| #include "ipc/ipc_channel_proxy.h" |
| +#include "ui/base/cocoa/focus_window_set.h" |
| AppShimHost::AppShimHost() |
| : channel_(NULL), profile_(NULL) { |
| @@ -38,6 +40,7 @@ bool AppShimHost::OnMessageReceived(const IPC::Message& message) { |
| bool handled = true; |
| IPC_BEGIN_MESSAGE_MAP(AppShimHost, message) |
| IPC_MESSAGE_HANDLER(AppShimHostMsg_LaunchApp, OnLaunchApp) |
| + IPC_MESSAGE_HANDLER(AppShimHostMsg_FocusApp, OnFocus) |
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| @@ -55,6 +58,23 @@ void AppShimHost::OnLaunchApp(std::string profile_dir, std::string app_id) { |
| Send(new AppShimMsg_LaunchApp_Done(success)); |
| } |
| +void AppShimHost::OnFocus() { |
|
koz (OOO until 15th September)
2013/03/18 03:33:12
DCHECK(CalledOnValidThread())
jeremya
2013/03/18 04:54:05
Done.
|
| + // TODO move |
|
koz (OOO until 15th September)
2013/03/18 03:33:12
Move to where?
jeremya
2013/03/18 04:54:05
Oops, this was left over from when the FocusWindow
|
| + if (!profile_) |
| + return; |
| + extensions::ShellWindowRegistry* registry = |
| + extensions::ShellWindowRegistry::Get(profile_); |
| + const std::set<ShellWindow*> windows = |
| + registry->GetShellWindowsForApp(app_id_); |
| + std::set<gfx::NativeWindow> native_windows; |
| + for (std::set<ShellWindow*>::const_iterator i = windows.begin(); |
| + i != windows.end(); |
| + ++i) { |
| + native_windows.insert((*i)->GetNativeWindow()); |
| + } |
| + ui::FocusWindowSet(native_windows); |
| +} |
| + |
| bool AppShimHost::LaunchAppImpl(const std::string& profile_dir, |
| const std::string& app_id) { |
| DCHECK(CalledOnValidThread()); |