Index: ui/views/focus/focus_manager.cc |
diff --git a/ui/views/focus/focus_manager.cc b/ui/views/focus/focus_manager.cc |
index 80a4dc8d6bdd0c7b67ee984e6081e434cebe6db1..b176d9cfde5585d5d6b9c1437daa95059c7daf70 100644 |
--- a/ui/views/focus/focus_manager.cc |
+++ b/ui/views/focus/focus_manager.cc |
@@ -313,6 +313,20 @@ void FocusManager::SetFocusedViewWithReason( |
if (focused_view_ == view) |
return; |
+#if !defined(OS_MACOSX) |
+ // TODO(warx): There are some AccessiblePaneViewTest failed on macosx. |
+ // crbug.com/650859. Remove !defined(OS_MACOSX) once that is fixed. |
+ // |
+ // If |widget_| is not active, focus is not allowed to set within |widget_| |
+ // right now, we just need to store this view and call a ClearNativeFocus (see |
+ // the comments in View::OnFocus. |
+ if (view && !widget_->IsActive()) { |
+ SetStoredFocusView(view); |
+ ClearNativeFocus(); |
sky
2016/10/03 15:56:18
I'm wrong. It's the call to Focus() on 346 that tr
Qiang(Joe) Xu
2016/10/03 20:24:50
I agree with it. In this way, activatable ones rem
|
+ return; |
+ } |
+#endif |
+ |
base::AutoReset<bool> auto_changing_focus(&is_changing_focus_, true); |
// Update the reason for the focus change (since this is checked by |
// some listeners), then notify all listeners. |