Index: ui/views/widget/widget.cc |
diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc |
index b2ce42f2f431ddd8cb5228d70934dac736e9f31d..892bef3ba633ae41449257072e2b05e1da574259 100644 |
--- a/ui/views/widget/widget.cc |
+++ b/ui/views/widget/widget.cc |
@@ -1031,6 +1031,16 @@ void Widget::OnNativeWidgetActivationChanged(bool active) { |
FOR_EACH_OBSERVER(WidgetObserver, observers_, |
OnWidgetActivationChanged(this, active)); |
+ // We have to update the focused text input client when the active widget |
+ // changes. See crbug.com/377479 |
+ views::FocusManager* focus_manager = GetFocusManager(); |
+ if (focus_manager) { |
+ if (active) |
+ focus_manager->FocusTextInputClient(focus_manager->GetFocusedView()); |
+ else |
+ focus_manager->BlurTextInputClient(focus_manager->GetFocusedView()); |
+ } |
+ |
if (IsVisible() && non_client_view()) |
non_client_view()->frame_view()->SchedulePaint(); |
} |