| Index: ui/views/cocoa/bridged_content_view.mm
|
| diff --git a/ui/views/cocoa/bridged_content_view.mm b/ui/views/cocoa/bridged_content_view.mm
|
| index 1796fff92a576f87b724a6acb8d6182c27da72b9..b47f522dd7c759f2f1450c06c5eb9b544bfe0806 100644
|
| --- a/ui/views/cocoa/bridged_content_view.mm
|
| +++ b/ui/views/cocoa/bridged_content_view.mm
|
| @@ -24,6 +24,7 @@
|
| #import "ui/events/keycodes/keyboard_code_conversion_mac.h"
|
| #include "ui/gfx/canvas_paint_mac.h"
|
| #include "ui/gfx/decorated_text.h"
|
| +#import "ui/gfx/decorated_text_mac.h"
|
| #include "ui/gfx/geometry/rect.h"
|
| #import "ui/gfx/mac/coordinate_conversion.h"
|
| #include "ui/gfx/path.h"
|
| @@ -200,42 +201,6 @@ base::string16 AttributedSubstringForRangeHelper(
|
| return substring;
|
| }
|
|
|
| -NSAttributedString* GetAttributedString(
|
| - const gfx::DecoratedText& decorated_text) {
|
| - base::scoped_nsobject<NSMutableAttributedString> str(
|
| - [[NSMutableAttributedString alloc]
|
| - initWithString:base::SysUTF16ToNSString(decorated_text.text)]);
|
| - [str beginEditing];
|
| -
|
| - NSValue* const line_style =
|
| - @(NSUnderlineStyleSingle | NSUnderlinePatternSolid);
|
| -
|
| - for (const auto& attribute : decorated_text.attributes) {
|
| - DCHECK(!attribute.range.is_reversed());
|
| - DCHECK_LE(attribute.range.end(), [str length]);
|
| -
|
| - NSMutableDictionary* attrs = [NSMutableDictionary dictionary];
|
| - NSRange range = attribute.range.ToNSRange();
|
| -
|
| - if (attribute.font.GetNativeFont())
|
| - attrs[NSFontAttributeName] = attribute.font.GetNativeFont();
|
| -
|
| - // NSFont does not have underline as an attribute. Hence handle it
|
| - // separately.
|
| - const bool underline = attribute.font.GetStyle() & gfx::Font::UNDERLINE;
|
| - if (underline)
|
| - attrs[NSUnderlineStyleAttributeName] = line_style;
|
| -
|
| - if (attribute.strike)
|
| - attrs[NSStrikethroughStyleAttributeName] = line_style;
|
| -
|
| - [str setAttributes:attrs range:range];
|
| - }
|
| -
|
| - [str endEditing];
|
| - return str.autorelease();
|
| -}
|
| -
|
| ui::TextEditCommand GetTextEditCommandForMenuAction(SEL action) {
|
| if (action == @selector(undo:))
|
| return ui::TextEditCommand::UNDO;
|
| @@ -254,6 +219,8 @@ ui::TextEditCommand GetTextEditCommandForMenuAction(SEL action) {
|
|
|
| } // namespace
|
|
|
| +// TODO(spqchan): Implement support when the Speech submenu is in the main
|
| +// menu.
|
| @interface BridgedContentView ()
|
|
|
| // Returns the active menu controller corresponding to |hostedView_|,
|
| @@ -851,7 +818,7 @@ ui::TextEditCommand GetTextEditCommandForMenuAction(SEL action) {
|
| views::View::ConvertPointToTarget(hostedView_, target, &locationInTarget);
|
| gfx::DecoratedText decoratedWord;
|
| gfx::Point baselinePoint;
|
| - if (!wordLookupClient->GetDecoratedWordAtPoint(
|
| + if (!wordLookupClient->GetDecoratedWordAndBaselineAtPoint(
|
| locationInTarget, &decoratedWord, &baselinePoint)) {
|
| return;
|
| }
|
| @@ -860,7 +827,8 @@ ui::TextEditCommand GetTextEditCommandForMenuAction(SEL action) {
|
| views::View::ConvertPointToTarget(target, hostedView_, &baselinePoint);
|
| NSPoint baselinePointAppKit = NSMakePoint(
|
| baselinePoint.x(), NSHeight([self frame]) - baselinePoint.y());
|
| - [self showDefinitionForAttributedString:GetAttributedString(decoratedWord)
|
| + [self showDefinitionForAttributedString:
|
| + gfx::GetAttributedStringFromDecoratedText(decoratedWord)
|
| atPoint:baselinePointAppKit];
|
| }
|
|
|
|
|