summaryrefslogtreecommitdiff
path: root/chromium/ui/wm/core/focus_controller.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/wm/core/focus_controller.cc')
-rw-r--r--chromium/ui/wm/core/focus_controller.cc14
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) {