Index: ui/wm/core/window_modality_controller.cc |
diff --git a/ui/wm/core/window_modality_controller.cc b/ui/wm/core/window_modality_controller.cc |
index 2eca7e24131b0cdfba4b46a5c337c8ba8e36bcae..1df375b439aff85b6f91fe4560bff9ff80415274 100644 |
--- a/ui/wm/core/window_modality_controller.cc |
+++ b/ui/wm/core/window_modality_controller.cc |
@@ -184,6 +184,13 @@ bool WindowModalityController::ProcessLocatedEvent(aura::Window* target, |
aura::Window* modal_transient_child = GetModalTransient(target); |
if (modal_transient_child && (event->type() == ui::ET_MOUSE_PRESSED || |
event->type() == ui::ET_TOUCH_PRESSED)) { |
+ // Activate top window if transient child window is window modal. |
+ if (TransientChildIsWindowModal(modal_transient_child)) { |
+ aura::Window* toplevel = GetToplevelWindow(target); |
+ DCHECK(toplevel); |
+ ActivateWindow(toplevel); |
+ } |
+ |
AnimateWindow(modal_transient_child, WINDOW_ANIMATION_TYPE_BOUNCE); |
} |
if (event->type() == ui::ET_TOUCH_CANCELLED) |