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

Unified Diff: content/browser/renderer_host/render_widget_host_view_mac_dictionary_helper.mm

Issue 1306713007: Revert of Implement "Look Up In Dictionary" context menu item asynchronously. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_mac.mm ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/render_widget_host_view_mac_dictionary_helper.mm
diff --git a/content/browser/renderer_host/render_widget_host_view_mac_dictionary_helper.mm b/content/browser/renderer_host/render_widget_host_view_mac_dictionary_helper.mm
index 69e99227575ed403a9c13973cc0aef403c290f7c..92f10bc2688d6d9e84c2a68b9bc772205fc97c83 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac_dictionary_helper.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac_dictionary_helper.mm
@@ -22,12 +22,38 @@
void RenderWidgetHostViewMacDictionaryHelper::ShowDefinitionForSelection() {
NSRange selection_range = [view_->cocoa_view() selectedRange];
+ NSAttributedString* attr_string =
+ [view_->cocoa_view() attributedSubstringForProposedRange:selection_range
+ actualRange:nil];
+ if (!attr_string) {
+ if (view_->selected_text().empty())
+ return;
+ // The PDF plugin does not support getting the attributed string. Until it
+ // does, use NSPerformService(), which opens Dictionary.app.
+ // http://crbug.com/152438
+ // TODO(asvitkine): This should be removed after the above support is added.
+ NSString* text = base::SysUTF8ToNSString(view_->selected_text());
+ NSPasteboard* pasteboard = [NSPasteboard pasteboardWithUniqueName];
+ NSArray* types = [NSArray arrayWithObject:NSStringPboardType];
+ [pasteboard declareTypes:types owner:nil];
+ if ([pasteboard setString:text forType:NSStringPboardType])
+ NSPerformService(@"Look Up in Dictionary", pasteboard);
+ return;
+ }
+
NSRect rect =
[view_->cocoa_view() firstViewRectForCharacterRange:selection_range
actualRange:nil];
+
+ NSDictionary* attrs = [attr_string attributesAtIndex:0 effectiveRange:nil];
+ NSFont* font = [attrs objectForKey:NSFontAttributeName];
+ rect.origin.y += NSHeight(rect) - [font ascender];
+
rect.origin.x += offset_.x();
- rect.origin.y += NSHeight(rect) + offset_.y();
- [view_->cocoa_view() showLookUpDictionaryOverlayAtPoint:rect.origin];
+ rect.origin.y += offset_.y();
+
+ [target_view_->cocoa_view() showDefinitionForAttributedString:attr_string
+ atPoint:rect.origin];
}
} // namespace content
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_mac.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698