| Index: ui/views/widget/desktop_aura/x11_desktop_handler.cc
|
| diff --git a/ui/views/widget/desktop_aura/x11_desktop_handler.cc b/ui/views/widget/desktop_aura/x11_desktop_handler.cc
|
| index 5ab84f9928e6d0f6305ee1642d3c4bf18c9bdfb5..9b20295cc62fa621bbba890d0640e826f090c710 100644
|
| --- a/ui/views/widget/desktop_aura/x11_desktop_handler.cc
|
| +++ b/ui/views/widget/desktop_aura/x11_desktop_handler.cc
|
| @@ -228,8 +228,15 @@ void X11DesktopHandler::OnActiveWindowChanged(::Window xid,
|
| if (active_state == ACTIVE) {
|
| DesktopWindowTreeHostX11* new_host =
|
| views::DesktopWindowTreeHostX11::GetHostForXID(xid);
|
| - if (new_host)
|
| - new_host->HandleNativeWidgetActivationChanged(true);
|
| + if (new_host) {
|
| + // Set focus to the modal dialog instead of the host window.
|
| + if (new_host->GetModalDialog()) {
|
| + XSetInputFocus(xdisplay_, new_host->GetModalDialog(),
|
| + RevertToParent, CurrentTime);
|
| + } else {
|
| + new_host->HandleNativeWidgetActivationChanged(true);
|
| + }
|
| + }
|
| }
|
| }
|
|
|
|
|