Chromium Code Reviews| Index: chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.mm |
| diff --git a/chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.mm b/chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.mm |
| index df7b00d3bc6b1c315e1189e80962b1cd23eb322c..2531a70157029943c978ab82a79b240ce05ab46e 100644 |
| --- a/chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.mm |
| +++ b/chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.mm |
| @@ -155,18 +155,16 @@ NSAttributedString* CreateClassifiedAttributedString( |
| } // namespace |
| +@implementation AutocompleteMatchWrapper |
| +@end |
| + |
| @implementation OmniboxPopupCell |
| +@synthesize attributedTitle; |
| + |
| - (id)init { |
| self = [super init]; |
| if (self) { |
| - [self setImagePosition:NSImageLeft]; |
| - [self setBordered:NO]; |
| - [self setButtonType:NSRadioButton]; |
| - |
| - // Without this highlighting messes up white areas of images. |
| - [self setHighlightsBy:NSNoCellMask]; |
| - |
| const base::string16& raw_separator = |
| l10n_util::GetStringUTF16(IDS_AUTOCOMPLETE_MATCH_DESCRIPTION_SEPARATOR); |
| separator_.reset( |
| @@ -205,6 +203,23 @@ NSAttributedString* CreateClassifiedAttributedString( |
| } |
| } |
| +- (id)copyWithZone:(NSZone*)zone { |
| + NSAttributedString* separator = separator_.release(); |
| + NSAttributedString* description = description_.release(); |
| + NSAttributedString* prefix = prefix_.release(); |
| + OmniboxPopupCell* copy = [super copyWithZone:zone]; |
| + copy->match_ = match_; |
| + copy->separator_.reset([separator copy]); |
| + copy->description_.reset([description copy]); |
| + copy->prefix_.reset([prefix copy]); |
| + copy->maxMatchContentsWidth_ = maxMatchContentsWidth_; |
| + copy->contentsOffset_ = contentsOffset_; |
| + separator_.reset(separator); |
| + description_.reset(description); |
| + prefix_.reset(prefix); |
| + return copy; |
| +} |
|
Scott Hess - ex-Googler
2015/05/04 19:40:20
WRT your other question about whether -copyWithZon
dschuyler
2015/05/04 23:51:40
Yeah, it does seem to use the same cell over and o
Scott Hess - ex-Googler
2015/05/07 22:35:41
This is something I'm not entirely certain of. It
|
| + |
| - (void)setMaxMatchContentsWidth:(CGFloat)maxMatchContentsWidth { |
| maxMatchContentsWidth_ = maxMatchContentsWidth; |
| } |
| @@ -353,10 +368,10 @@ NSAttributedString* CreateClassifiedAttributedString( |
| NSRect renderRect = ShiftRect(cellFrame, offset); |
| renderRect.size.width = |
| std::min(NSWidth(renderRect), static_cast<CGFloat>(maxWidth)); |
| + NSRect textRect = [as boundingRectWithSize:renderRect.size options:nil]; |
| + renderRect.origin.y += (NSHeight(cellFrame) - NSHeight(textRect)) / 2; |
| if (renderRect.size.width != 0) { |
| - [self drawTitle:as |
| - withFrame:FlipIfRTL(renderRect, cellFrame) |
| - inView:controlView]; |
| + [as drawInRect:FlipIfRTL(renderRect, cellFrame)]; |
| } |
| return NSWidth(renderRect); |
| } |