| Index: chrome/browser/ui/cocoa/gradient_button_cell.mm
|
| diff --git a/chrome/browser/ui/cocoa/gradient_button_cell.mm b/chrome/browser/ui/cocoa/gradient_button_cell.mm
|
| index 4827cef0a613467092a3308d79a75041ec3da203..323916e5c048a96c1021d1b1f804bbdf14edd383 100644
|
| --- a/chrome/browser/ui/cocoa/gradient_button_cell.mm
|
| +++ b/chrome/browser/ui/cocoa/gradient_button_cell.mm
|
| @@ -490,6 +490,10 @@ static const NSTimeInterval kAnimationHideDuration = 0.4;
|
| [innerPath stroke];
|
| }
|
|
|
| +- (CGFloat)insetInView:(NSView*)controlView {
|
| + return [controlView cr_lineWidth];
|
| +}
|
| +
|
| // TODO(viettrungluu): clean this up.
|
| // (Private)
|
| - (void)getDrawParamsForFrame:(NSRect)cellFrame
|
| @@ -497,22 +501,22 @@ static const NSTimeInterval kAnimationHideDuration = 0.4;
|
| innerFrame:(NSRect*)returnInnerFrame
|
| innerPath:(NSBezierPath**)returnInnerPath
|
| clipPath:(NSBezierPath**)returnClipPath {
|
| - const CGFloat kLineWidth = [controlView cr_lineWidth];
|
| - const CGFloat kHalfLineWidth = kLineWidth / 2.0;
|
| + const CGFloat lineWidth = [self insetInView:controlView];
|
| + const CGFloat halfLineWidth = lineWidth / 2.0;
|
|
|
| NSRect drawFrame = NSZeroRect;
|
| NSRect innerFrame = NSZeroRect;
|
| CGFloat cornerRadius = 2;
|
| if (![self isMaterialDesignButtonType]) {
|
| - drawFrame = NSInsetRect(cellFrame, 1.5 * kLineWidth, 1.5 * kLineWidth);
|
| - innerFrame = NSInsetRect(cellFrame, kLineWidth, kLineWidth);
|
| + drawFrame = NSInsetRect(cellFrame, 1.5 * lineWidth, 1.5 * lineWidth);
|
| + innerFrame = NSInsetRect(cellFrame, lineWidth, lineWidth);
|
| cornerRadius = 3;
|
| } else {
|
| drawFrame = cellFrame;
|
| // Hover and click paths are always 20pt tall, regardless of the button's
|
| // height.
|
| drawFrame.size.height = 20;
|
| - innerFrame = NSInsetRect(drawFrame, kLineWidth, kLineWidth);
|
| + innerFrame = NSInsetRect(drawFrame, lineWidth, lineWidth);
|
| }
|
|
|
| ButtonType type = [[(NSControl*)controlView cell] tag];
|
| @@ -550,16 +554,16 @@ static const NSTimeInterval kAnimationHideDuration = 0.4;
|
| xRadius:cornerRadius
|
| yRadius:cornerRadius];
|
| }
|
| - [*returnInnerPath setLineWidth:kLineWidth];
|
| + [*returnInnerPath setLineWidth:lineWidth];
|
| }
|
| if (returnClipPath) {
|
| DCHECK(*returnClipPath == nil);
|
| NSRect clipPathRect =
|
| - NSInsetRect(drawFrame, -kHalfLineWidth, -kHalfLineWidth);
|
| - *returnClipPath = [NSBezierPath
|
| - bezierPathWithRoundedRect:clipPathRect
|
| - xRadius:cornerRadius + kHalfLineWidth
|
| - yRadius:cornerRadius + kHalfLineWidth];
|
| + NSInsetRect(drawFrame, -halfLineWidth, -halfLineWidth);
|
| + *returnClipPath =
|
| + [NSBezierPath bezierPathWithRoundedRect:clipPathRect
|
| + xRadius:cornerRadius + halfLineWidth
|
| + yRadius:cornerRadius + halfLineWidth];
|
| }
|
| }
|
|
|
| @@ -743,7 +747,6 @@ static const NSTimeInterval kAnimationHideDuration = 0.4;
|
| if (shouldClipTheTitle)
|
| [NSBezierPath clipRect:solidPart];
|
|
|
| - CGFloat textLeft = [self textStartXOffset];
|
|
|
| // For some reason, the height of cellFrame as passed in is totally bogus.
|
| // For vertical centering purposes, we need the bounds of the containing
|
| @@ -751,17 +754,15 @@ static const NSTimeInterval kAnimationHideDuration = 0.4;
|
| NSRect buttonFrame = [[self controlView] frame];
|
|
|
| // Call the vertical offset to match native NSButtonCell's version.
|
| - textOffset = NSMakePoint(textLeft,
|
| - (NSHeight(buttonFrame) - size.height) / 2 +
|
| - [self verticalTextOffset]);
|
| + textOffset = NSMakePoint(
|
| + NSMinX(cellFrame),
|
| + (NSHeight(buttonFrame) - size.height) / 2 + [self verticalTextOffset]);
|
| // WIth Material Design we want an ellipsis if the title is too long to fit,
|
| // so have to use drawInRect: instead of drawAtPoint:.
|
| if (isModeMaterial) {
|
| - NSRect textBounds = NSMakeRect(textOffset.x,
|
| - textOffset.y,
|
| - NSWidth(buttonFrame) - textOffset.x,
|
| - NSHeight(buttonFrame));
|
| - [title drawInRect:textBounds];
|
| + NSRect textFrame = NSMakeRect(textOffset.x, textOffset.y,
|
| + NSWidth(cellFrame), NSHeight(buttonFrame));
|
| + [title drawInRect:textFrame];
|
| } else {
|
| [title drawAtPoint:textOffset];
|
| }
|
|
|