diff options
author | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-04 03:27:29 +0000 |
---|---|---|
committer | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-04 03:27:29 +0000 |
commit | 023813461a28567adabab843e098bc1ca0f3dc23 (patch) | |
tree | 83128ed206437ac66f11aa19025d56e9f71a0815 /ash/wm/app_list_controller.cc | |
parent | e9a71317209f27bb07ccd72d34e6c40e8469556f (diff) | |
download | chromium_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.cc | 14 |
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); + } } } |