Index: content/browser/accessibility/browser_accessibility_cocoa.mm |
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm |
index 232e4827750c76a2d30f5f2412b1878fbc30e6a1..05bdcb0a40af59c504e956417243fa484f21f64f 100644 |
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm |
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm |
@@ -1491,7 +1491,13 @@ NSDictionary* attributeToMethodNameMap = nil; |
[self delegate]->AccessibilityDoDefaultAction( |
browserAccessibility_->GetId()); |
} else if ([action isEqualToString:NSAccessibilityShowMenuAction]) { |
- [self delegate]->AccessibilityShowMenu(browserAccessibility_->GetId()); |
+ NSPoint objOrigin = [self origin]; |
+ NSSize size = [[self size] sizeValue]; |
+ gfx::Point origin = [self delegate]->AccessibilityOriginInScreen( |
+ gfx::Rect(objOrigin.x, objOrigin.y, size.width, size.height)); |
+ origin.set_x(origin.x() + size.width / 2); |
+ origin.set_y(origin.y() + size.width / 2); |
+ [self delegate]->AccessibilityShowMenu(origin); |
} |
} |
@@ -1516,10 +1522,11 @@ NSDictionary* attributeToMethodNameMap = nil; |
return; |
if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) { |
+ BrowserAccessibilityManager* manager = browserAccessibility_->manager(); |
NSNumber* focusedNumber = value; |
BOOL focused = [focusedNumber intValue]; |
if (focused) |
- [self delegate]->AccessibilitySetFocus(browserAccessibility_->GetId()); |
+ manager->SetFocus(browserAccessibility_, true); |
} |
if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute]) { |
NSRange range = [(NSValue*)value rangeValue]; |