OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "chrome/browser/ui/ash/launcher/app_shortcut_launcher_item_controller.h
" | 5 #include "chrome/browser/ui/ash/launcher/app_shortcut_launcher_item_controller.h
" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
| 11 #include "ash/root_window_controller.h" |
| 12 #include "ash/shell.h" |
11 #include "ash/wm/window_util.h" | 13 #include "ash/wm/window_util.h" |
12 #include "base/memory/ptr_util.h" | 14 #include "base/memory/ptr_util.h" |
13 #include "chrome/browser/extensions/launch_util.h" | 15 #include "chrome/browser/extensions/launch_util.h" |
14 #include "chrome/browser/ui/app_list/arc/arc_app_utils.h" | 16 #include "chrome/browser/ui/app_list/arc/arc_app_utils.h" |
15 #include "chrome/browser/ui/ash/launcher/arc_playstore_shortcut_launcher_item_co
ntroller.h" | 17 #include "chrome/browser/ui/ash/launcher/arc_playstore_shortcut_launcher_item_co
ntroller.h" |
16 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" | 18 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" |
17 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_util.h" | 19 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_util.h" |
18 #include "chrome/browser/ui/ash/launcher/launcher_context_menu.h" | 20 #include "chrome/browser/ui/ash/launcher/launcher_context_menu.h" |
19 #include "chrome/browser/ui/ash/launcher/launcher_controller_helper.h" | 21 #include "chrome/browser/ui/ash/launcher/launcher_controller_helper.h" |
20 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" | 22 #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 // which take a lot of time for pre-processing (like the files app) before | 109 // which take a lot of time for pre-processing (like the files app) before |
108 // they open a window. Since there is currently no other way to detect if an | 110 // they open a window. Since there is currently no other way to detect if an |
109 // app was started we suppress any further clicks within a special time out. | 111 // app was started we suppress any further clicks within a special time out. |
110 if (IsV2App() && !AllowNextLaunchAttempt()) { | 112 if (IsV2App() && !AllowNextLaunchAttempt()) { |
111 std::move(callback).Run( | 113 std::move(callback).Run( |
112 ash::SHELF_ACTION_NONE, | 114 ash::SHELF_ACTION_NONE, |
113 GetAppMenuItems(event ? event->flags() : ui::EF_NONE)); | 115 GetAppMenuItems(event ? event->flags() : ui::EF_NONE)); |
114 return; | 116 return; |
115 } | 117 } |
116 | 118 |
| 119 aura::Window* root_window = |
| 120 ash::Shell::Get() |
| 121 ->GetRootWindowControllerWithDisplayId(display_id) |
| 122 ->GetRootWindow(); |
| 123 |
117 // Launching some items replaces this item controller instance, which | 124 // Launching some items replaces this item controller instance, which |
118 // destroys its ShelfID string pair; making copies avoid crashes. | 125 // destroys its ShelfID string pair; making copies avoid crashes. |
119 ChromeLauncherController::instance()->LaunchApp(ash::ShelfID(shelf_id()), | 126 ChromeLauncherController::instance()->LaunchApp( |
120 source, ui::EF_NONE); | 127 ash::ShelfID(shelf_id()), source, ui::EF_NONE, root_window); |
121 std::move(callback).Run(ash::SHELF_ACTION_NEW_WINDOW_CREATED, | 128 std::move(callback).Run(ash::SHELF_ACTION_NEW_WINDOW_CREATED, |
122 base::nullopt); | 129 base::nullopt); |
123 return; | 130 return; |
124 } | 131 } |
125 | 132 |
126 const ash::ShelfAction action = ActivateContent(content); | 133 const ash::ShelfAction action = ActivateContent(content); |
127 std::move(callback).Run( | 134 std::move(callback).Run( |
128 action, GetAppMenuItems(event ? event->flags() : ui::EF_NONE)); | 135 action, GetAppMenuItems(event ? event->flags() : ui::EF_NONE)); |
129 } | 136 } |
130 | 137 |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
363 | 370 |
364 bool AppShortcutLauncherItemController::AllowNextLaunchAttempt() { | 371 bool AppShortcutLauncherItemController::AllowNextLaunchAttempt() { |
365 if (last_launch_attempt_.is_null() || | 372 if (last_launch_attempt_.is_null() || |
366 last_launch_attempt_ + base::TimeDelta::FromMilliseconds( | 373 last_launch_attempt_ + base::TimeDelta::FromMilliseconds( |
367 kClickSuppressionInMS) < base::Time::Now()) { | 374 kClickSuppressionInMS) < base::Time::Now()) { |
368 last_launch_attempt_ = base::Time::Now(); | 375 last_launch_attempt_ = base::Time::Now(); |
369 return true; | 376 return true; |
370 } | 377 } |
371 return false; | 378 return false; |
372 } | 379 } |
OLD | NEW |