Index: chrome/browser/accessibility/accessibility_extension_api.cc |
diff --git a/chrome/browser/accessibility/accessibility_extension_api.cc b/chrome/browser/accessibility/accessibility_extension_api.cc |
index 851097eb88614e3d3563c2e533aa5a2b553bedd5..e73e48cff8c1ce1fc5f0f0940cc4bf0d6017c690 100644 |
--- a/chrome/browser/accessibility/accessibility_extension_api.cc |
+++ b/chrome/browser/accessibility/accessibility_extension_api.cc |
@@ -77,8 +77,18 @@ bool AccessibilityPrivateSetFocusRingFunction::RunSync() { |
rects.push_back(gfx::Rect(left, top, width, height)); |
} |
+ // Move the visible focus ring to cover all of these rects. |
chromeos::AccessibilityFocusRingController::GetInstance()->SetFocusRing( |
rects); |
+ |
+ // Also update the touch exploration controller so that synthesized |
+ // touch events are anchored within the focused object. |
+ if (!rects.empty()) { |
+ chromeos::AccessibilityManager* manager = |
+ chromeos::AccessibilityManager::Get(); |
+ manager->SetTouchAccessibilityAnchorPoint(rects[0].CenterPoint()); |
+ } |
+ |
return true; |
#endif // defined(OS_CHROMEOS) |