diff options
Diffstat (limited to 'chromium/ui/wm/core/focus_controller.cc')
-rw-r--r-- | chromium/ui/wm/core/focus_controller.cc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/chromium/ui/wm/core/focus_controller.cc b/chromium/ui/wm/core/focus_controller.cc index d062903216a..e1b644dccc7 100644 --- a/chromium/ui/wm/core/focus_controller.cc +++ b/chromium/ui/wm/core/focus_controller.cc @@ -188,6 +188,7 @@ void FocusController::FocusAndActivateWindow( aura::Window* window) { if (window && (window->Contains(focused_window_) || window->Contains(active_window_))) { + StackActiveWindow(); return; } @@ -298,10 +299,8 @@ void FocusController::SetActiveWindow( active_window_ = window; if (active_window_ && !observer_manager_.IsObserving(active_window_)) observer_manager_.Add(active_window_); - if (active_window_) { - StackTransientParentsBelowModalWindow(active_window_); - active_window_->parent()->StackChildAtTop(active_window_); - } + if (active_window_) + StackActiveWindow(); aura::client::ActivationChangeObserver* observer = NULL; if (window_tracker.Contains(lost_activation)) { @@ -322,6 +321,13 @@ void FocusController::SetActiveWindow( window_tracker.Contains(lost_activation) ? lost_activation : NULL)); } +void FocusController::StackActiveWindow() { + if (active_window_) { + StackTransientParentsBelowModalWindow(active_window_); + active_window_->parent()->StackChildAtTop(active_window_); + } +} + void FocusController::WindowLostFocusFromDispositionChange( aura::Window* window, aura::Window* next) { |