summaryrefslogtreecommitdiffstats
path: root/ash/wm/app_list_controller.cc
diff options
context:
space:
mode:
authorxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-04 03:27:29 +0000
committerxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-04 03:27:29 +0000
commit023813461a28567adabab843e098bc1ca0f3dc23 (patch)
tree83128ed206437ac66f11aa19025d56e9f71a0815 /ash/wm/app_list_controller.cc
parente9a71317209f27bb07ccd72d34e6c40e8469556f (diff)
downloadchromium_src-023813461a28567adabab843e098bc1ca0f3dc23.zip
chromium_src-023813461a28567adabab843e098bc1ca0f3dc23.tar.gz
chromium_src-023813461a28567adabab843e098bc1ca0f3dc23.tar.bz2
ash: Fix app launcher closing on uninstall dialog.
BUG=303267,276513 TEST=Covered by AppListControllerTest.* R=flackr@chromium.org, jamescook@chromium.org Review URL: https://codereview.chromium.org/25708010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226942 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/wm/app_list_controller.cc')
-rw-r--r--ash/wm/app_list_controller.cc14
1 files changed, 8 insertions, 6 deletions
diff --git a/ash/wm/app_list_controller.cc b/ash/wm/app_list_controller.cc
index 152c995..a6549c2 100644
--- a/ash/wm/app_list_controller.cc
+++ b/ash/wm/app_list_controller.cc
@@ -328,12 +328,14 @@ void AppListController::OnGestureEvent(ui::GestureEvent* event) {
void AppListController::OnWindowFocused(aura::Window* gained_focus,
aura::Window* lost_focus) {
- if (lost_focus && view_ && is_visible_) {
- aura::Window* applist_container =
- GetRootWindowController(lost_focus->GetRootWindow())->GetContainer(
- kShellWindowId_AppListContainer);
- if (applist_container->Contains(lost_focus))
- SetVisible(false, lost_focus);
+ if (view_ && is_visible_) {
+ aura::Window* applist_window = view_->GetWidget()->GetNativeView();
+ aura::Window* applist_container = applist_window->parent();
+
+ if (applist_container->Contains(lost_focus) &&
+ (!gained_focus || !applist_container->Contains(gained_focus))) {
+ SetVisible(false, applist_window);
+ }
}
}