Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(112)

Side by Side Diff: ui/views/view.cc

Issue 2119413004: a11y: Exclude children of nested keyboard accessible controls from a11y tree. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix CrOS. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #define _USE_MATH_DEFINES // For VC++ to get M_PI. This has to be first. 5 #define _USE_MATH_DEFINES // For VC++ to get M_PI. This has to be first.
6 6
7 #include "ui/views/view.h" 7 #include "ui/views/view.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <cmath> 10 #include <cmath>
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 needs_layout_(true), 138 needs_layout_(true),
139 snap_layer_to_pixel_boundary_(false), 139 snap_layer_to_pixel_boundary_(false),
140 flip_canvas_on_paint_for_rtl_ui_(false), 140 flip_canvas_on_paint_for_rtl_ui_(false),
141 paint_to_layer_(false), 141 paint_to_layer_(false),
142 accelerator_focus_manager_(NULL), 142 accelerator_focus_manager_(NULL),
143 registered_accelerator_count_(0), 143 registered_accelerator_count_(0),
144 next_focusable_view_(NULL), 144 next_focusable_view_(NULL),
145 previous_focusable_view_(NULL), 145 previous_focusable_view_(NULL),
146 focus_behavior_(FocusBehavior::NEVER), 146 focus_behavior_(FocusBehavior::NEVER),
147 context_menu_controller_(NULL), 147 context_menu_controller_(NULL),
148 drag_controller_(NULL), 148 drag_controller_(NULL) {
149 native_view_accessibility_(NULL) {
150 SetTargetHandler(this); 149 SetTargetHandler(this);
151 } 150 }
152 151
153 View::~View() { 152 View::~View() {
154 if (parent_) 153 if (parent_)
155 parent_->RemoveChildView(this); 154 parent_->RemoveChildView(this);
156 155
157 ViewStorage::GetInstance()->ViewRemoved(this); 156 ViewStorage::GetInstance()->ViewRemoved(this);
158 157
159 { 158 {
160 internal::ScopedChildrenLock lock(this); 159 internal::ScopedChildrenLock lock(this);
161 for (auto* child : children_) { 160 for (auto* child : children_) {
162 child->parent_ = NULL; 161 child->parent_ = NULL;
163 if (!child->owned_by_client_) 162 if (!child->owned_by_client_)
164 delete child; 163 delete child;
165 } 164 }
166 } 165 }
167
168 // Release ownership of the native accessibility object, but it's
169 // reference-counted on some platforms, so it may not be deleted right away.
170 if (native_view_accessibility_)
171 native_view_accessibility_->Destroy();
172 } 166 }
173 167
174 // Tree operations ------------------------------------------------------------- 168 // Tree operations -------------------------------------------------------------
175 169
176 const Widget* View::GetWidget() const { 170 const Widget* View::GetWidget() const {
177 // The root view holds a reference to this view hierarchy's Widget. 171 // The root view holds a reference to this view hierarchy's Widget.
178 return parent_ ? parent_->GetWidget() : NULL; 172 return parent_ ? parent_->GetWidget() : NULL;
179 } 173 }
180 174
181 Widget* View::GetWidget() { 175 Widget* View::GetWidget() {
(...skipping 1233 matching lines...) Expand 10 before | Expand all | Expand 10 after
1415 } 1409 }
1416 1410
1417 // Accessibility---------------------------------------------------------------- 1411 // Accessibility----------------------------------------------------------------
1418 1412
1419 bool View::HandleAccessibleAction(const ui::AXActionData& action_data) { 1413 bool View::HandleAccessibleAction(const ui::AXActionData& action_data) {
1420 return false; 1414 return false;
1421 } 1415 }
1422 1416
1423 gfx::NativeViewAccessible View::GetNativeViewAccessible() { 1417 gfx::NativeViewAccessible View::GetNativeViewAccessible() {
1424 if (!native_view_accessibility_) 1418 if (!native_view_accessibility_)
1425 native_view_accessibility_ = NativeViewAccessibility::Create(this); 1419 native_view_accessibility_ = NativeViewAccessibility::CreateForView(this);
1426 if (native_view_accessibility_) 1420 if (native_view_accessibility_)
1427 return native_view_accessibility_->GetNativeObject(); 1421 return native_view_accessibility_->GetNativeObject();
1428 return NULL; 1422 return nullptr;
1429 } 1423 }
1430 1424
1431 void View::NotifyAccessibilityEvent( 1425 void View::NotifyAccessibilityEvent(
1432 ui::AXEvent event_type, 1426 ui::AXEvent event_type,
1433 bool send_native_event) { 1427 bool send_native_event) {
1434 if (ViewsDelegate::GetInstance()) 1428 if (ViewsDelegate::GetInstance())
1435 ViewsDelegate::GetInstance()->NotifyAccessibilityEvent(this, event_type); 1429 ViewsDelegate::GetInstance()->NotifyAccessibilityEvent(this, event_type);
1436 1430
1437 if (send_native_event && GetWidget()) { 1431 if (send_native_event && GetWidget()) {
1438 if (!native_view_accessibility_) 1432 if (!native_view_accessibility_)
1439 native_view_accessibility_ = NativeViewAccessibility::Create(this); 1433 native_view_accessibility_ = NativeViewAccessibility::CreateForView(this);
1440 if (native_view_accessibility_) 1434 if (native_view_accessibility_)
1441 native_view_accessibility_->NotifyAccessibilityEvent(event_type); 1435 native_view_accessibility_->NotifyAccessibilityEvent(event_type);
1442 } 1436 }
1443 } 1437 }
1444 1438
1445 // Scrolling ------------------------------------------------------------------- 1439 // Scrolling -------------------------------------------------------------------
1446 1440
1447 void View::ScrollRectToVisible(const gfx::Rect& rect) { 1441 void View::ScrollRectToVisible(const gfx::Rect& rect) {
1448 // We must take RTL UI mirroring into account when adjusting the position of 1442 // We must take RTL UI mirroring into account when adjusting the position of
1449 // the region. 1443 // the region.
(...skipping 1101 matching lines...) Expand 10 before | Expand all | Expand 10 after
2551 // Message the RootView to do the drag and drop. That way if we're removed 2545 // Message the RootView to do the drag and drop. That way if we're removed
2552 // the RootView can detect it and avoid calling us back. 2546 // the RootView can detect it and avoid calling us back.
2553 gfx::Point widget_location(event.location()); 2547 gfx::Point widget_location(event.location());
2554 ConvertPointToWidget(this, &widget_location); 2548 ConvertPointToWidget(this, &widget_location);
2555 widget->RunShellDrag(this, data, widget_location, drag_operations, source); 2549 widget->RunShellDrag(this, data, widget_location, drag_operations, source);
2556 // WARNING: we may have been deleted. 2550 // WARNING: we may have been deleted.
2557 return true; 2551 return true;
2558 } 2552 }
2559 2553
2560 } // namespace views 2554 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698