Chromium Code Reviews| 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); |
|
sadrul
2015/07/19 01:25:36
Hm, does this work correctly? How are you testing?
joone
2015/07/20 19:28:37
Each x-server has one xdisplay so it is shared bet
|
| + } else { |
| + new_host->HandleNativeWidgetActivationChanged(true); |
| + } |
| + } |
| } |
| } |