OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/views/accessibility/ax_aura_obj_cache.h" | 5 #include "ui/views/accessibility/ax_aura_obj_cache.h" |
6 | 6 |
7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
8 #include "base/memory/singleton.h" | 8 #include "base/memory/singleton.h" |
9 #include "ui/aura/client/focus_client.h" | 9 #include "ui/aura/client/focus_client.h" |
10 #include "ui/aura/window.h" | 10 #include "ui/aura/window.h" |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 focused_widget = Widget::GetWidgetForNativeView(focused_window); | 144 focused_widget = Widget::GetWidgetForNativeView(focused_window); |
145 } | 145 } |
146 | 146 |
147 if (!focused_widget) | 147 if (!focused_widget) |
148 return nullptr; | 148 return nullptr; |
149 | 149 |
150 FocusManager* focus_manager = focused_widget->GetFocusManager(); | 150 FocusManager* focus_manager = focused_widget->GetFocusManager(); |
151 if (!focus_manager) | 151 if (!focus_manager) |
152 return nullptr; | 152 return nullptr; |
153 | 153 |
154 return focus_manager->GetFocusedView(); | 154 View* focused_view = focus_manager->GetFocusedView(); |
| 155 if (focused_view) |
| 156 return focused_view; |
| 157 else |
| 158 return focused_widget->GetRootView(); |
155 } | 159 } |
156 | 160 |
157 void AXAuraObjCache::OnWindowFocused(aura::Window* gained_focus, | 161 void AXAuraObjCache::OnWindowFocused(aura::Window* gained_focus, |
158 aura::Window* lost_focus) { | 162 aura::Window* lost_focus) { |
159 View* view = GetFocusedView(); | 163 View* view = GetFocusedView(); |
160 if (view) | 164 if (view) |
161 view->NotifyAccessibilityEvent(ui::AX_EVENT_FOCUS, true); | 165 view->NotifyAccessibilityEvent(ui::AX_EVENT_FOCUS, true); |
162 } | 166 } |
163 | 167 |
164 void AXAuraObjCache::OnWindowDestroying(aura::Window* window) { | 168 void AXAuraObjCache::OnWindowDestroying(aura::Window* window) { |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 AuraView* aura_view, | 207 AuraView* aura_view, |
204 std::map<AuraView*, int32_t>& aura_view_to_id_map) { | 208 std::map<AuraView*, int32_t>& aura_view_to_id_map) { |
205 int32_t id = GetID(aura_view); | 209 int32_t id = GetID(aura_view); |
206 if (id == -1) | 210 if (id == -1) |
207 return; | 211 return; |
208 aura_view_to_id_map.erase(aura_view); | 212 aura_view_to_id_map.erase(aura_view); |
209 Remove(id); | 213 Remove(id); |
210 } | 214 } |
211 | 215 |
212 } // namespace views | 216 } // namespace views |
OLD | NEW |