| OLD | NEW |
| 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 #include "content/browser/renderer_host/render_widget_host_view_mac.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_mac.h" |
| 6 | 6 |
| 7 #import <objc/runtime.h> | 7 #import <objc/runtime.h> |
| 8 #include <QuartzCore/QuartzCore.h> | 8 #include <QuartzCore/QuartzCore.h> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 3064 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3075 // word in a text field. | 3075 // word in a text field. |
| 3076 - (void)accessibilitySetTextSelection:(int32)accId | 3076 - (void)accessibilitySetTextSelection:(int32)accId |
| 3077 startOffset:(int32)startOffset | 3077 startOffset:(int32)startOffset |
| 3078 endOffset:(int32)endOffset { | 3078 endOffset:(int32)endOffset { |
| 3079 RenderWidgetHostImpl* rwh = renderWidgetHostView_->render_widget_host_; | 3079 RenderWidgetHostImpl* rwh = renderWidgetHostView_->render_widget_host_; |
| 3080 rwh->AccessibilitySetTextSelection(accId, startOffset, endOffset); | 3080 rwh->AccessibilitySetTextSelection(accId, startOffset, endOffset); |
| 3081 } | 3081 } |
| 3082 | 3082 |
| 3083 // Convert a web accessibility's location in web coordinates into a cocoa | 3083 // Convert a web accessibility's location in web coordinates into a cocoa |
| 3084 // screen coordinate. | 3084 // screen coordinate. |
| 3085 - (NSPoint)accessibilityPointInScreen: | 3085 - (NSPoint)accessibilityPointInScreen:(NSPoint)origin |
| 3086 (BrowserAccessibilityCocoa*)accessibility { | 3086 size:(NSSize)size { |
| 3087 NSPoint origin = [accessibility origin]; | |
| 3088 NSSize size = [[accessibility size] sizeValue]; | |
| 3089 origin.y = NSHeight([self bounds]) - origin.y; | 3087 origin.y = NSHeight([self bounds]) - origin.y; |
| 3090 NSPoint originInWindow = [self convertPoint:origin toView:nil]; | 3088 NSPoint originInWindow = [self convertPoint:origin toView:nil]; |
| 3091 NSPoint originInScreen = [[self window] convertBaseToScreen:originInWindow]; | 3089 NSPoint originInScreen = [[self window] convertBaseToScreen:originInWindow]; |
| 3092 originInScreen.y = originInScreen.y - size.height; | 3090 originInScreen.y = originInScreen.y - size.height; |
| 3093 return originInScreen; | 3091 return originInScreen; |
| 3094 } | 3092 } |
| 3095 | 3093 |
| 3096 - (void)setAccessibilityFocus:(BOOL)focus | 3094 - (void)setAccessibilityFocus:(BOOL)focus |
| 3097 accessibilityId:(int32)accessibilityObjectId { | 3095 accessibilityId:(int32)accessibilityObjectId { |
| 3098 if (focus) { | 3096 if (focus) { |
| 3099 RenderWidgetHostImpl* rwh = renderWidgetHostView_->render_widget_host_; | 3097 RenderWidgetHostImpl* rwh = renderWidgetHostView_->render_widget_host_; |
| 3100 rwh->Send(new AccessibilityMsg_SetFocus( | 3098 rwh->Send(new AccessibilityMsg_SetFocus( |
| 3101 rwh->GetRoutingID(), accessibilityObjectId)); | 3099 rwh->GetRoutingID(), accessibilityObjectId)); |
| 3102 | 3100 |
| 3103 // Immediately set the focused item even though we have not officially set | 3101 // Immediately set the focused item even though we have not officially set |
| 3104 // focus on it as VoiceOver expects to get the focused item after this | 3102 // focus on it as VoiceOver expects to get the focused item after this |
| 3105 // method returns. | 3103 // method returns. |
| 3106 BrowserAccessibilityManager* manager = | 3104 BrowserAccessibilityManager* manager = |
| 3107 renderWidgetHostView_->GetBrowserAccessibilityManager(); | 3105 renderWidgetHostView_->GetBrowserAccessibilityManager(); |
| 3108 manager->SetFocus(manager->GetFromRendererID(accessibilityObjectId), false); | 3106 manager->SetFocus(manager->GetFromRendererID(accessibilityObjectId), false); |
| 3109 } | 3107 } |
| 3110 } | 3108 } |
| 3111 | 3109 |
| 3112 - (void)performShowMenuAction:(BrowserAccessibilityCocoa*)accessibility { | 3110 - (void)performShowMenuAction:(BrowserAccessibilityCocoa*)accessibility { |
| 3113 // Performs a right click copying WebKit's | 3111 // Performs a right click copying WebKit's |
| 3114 // accessibilityPerformShowMenuAction. | 3112 // accessibilityPerformShowMenuAction. |
| 3115 NSPoint location = [self accessibilityPointInScreen:accessibility]; | 3113 NSPoint origin = [accessibility origin]; |
| 3116 NSSize size = [[accessibility size] sizeValue]; | 3114 NSSize size = [[accessibility size] sizeValue]; |
| 3115 NSPoint location = [self accessibilityPointInScreen:origin size:size]; |
| 3117 location = [[self window] convertScreenToBase:location]; | 3116 location = [[self window] convertScreenToBase:location]; |
| 3118 location.x += size.width/2; | 3117 location.x += size.width/2; |
| 3119 location.y += size.height/2; | 3118 location.y += size.height/2; |
| 3120 | 3119 |
| 3121 NSEvent* fakeRightClick = [NSEvent | 3120 NSEvent* fakeRightClick = [NSEvent |
| 3122 mouseEventWithType:NSRightMouseDown | 3121 mouseEventWithType:NSRightMouseDown |
| 3123 location:location | 3122 location:location |
| 3124 modifierFlags:0 | 3123 modifierFlags:0 |
| 3125 timestamp:0 | 3124 timestamp:0 |
| 3126 windowNumber:[[self window] windowNumber] | 3125 windowNumber:[[self window] windowNumber] |
| (...skipping 797 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3924 return YES; | 3923 return YES; |
| 3925 } | 3924 } |
| 3926 | 3925 |
| 3927 - (BOOL)isOpaque { | 3926 - (BOOL)isOpaque { |
| 3928 if (renderWidgetHostView_->use_core_animation_) | 3927 if (renderWidgetHostView_->use_core_animation_) |
| 3929 return YES; | 3928 return YES; |
| 3930 return [super isOpaque]; | 3929 return [super isOpaque]; |
| 3931 } | 3930 } |
| 3932 | 3931 |
| 3933 @end | 3932 @end |
| OLD | NEW |