Index: chrome/browser/ui/cocoa/hover_close_button.mm |
diff --git a/chrome/browser/ui/cocoa/hover_close_button.mm b/chrome/browser/ui/cocoa/hover_close_button.mm |
index a45272c1ad17f73ffc7b9bed6cd4e520d525d965..b50cada4ebd6c84c2210635989110d4a4c69b728 100644 |
--- a/chrome/browser/ui/cocoa/hover_close_button.mm |
+++ b/chrome/browser/ui/cocoa/hover_close_button.mm |
@@ -135,19 +135,26 @@ NSString* const kFadeOutValueKeyPath = @"fadeOutValue"; |
} |
- (void)drawRect:(NSRect)dirtyRect { |
+ // Close boxes align left horizontally, and align center vertically. |
+ // http:crbug.com/14739 requires this. |
NSRect imageRect = NSZeroRect; |
imageRect.size = [gHoverMouseOverImage size]; |
+ NSRect destRect = [self bounds]; |
+ destRect.origin.y = floor((NSHeight(destRect) / 2) |
+ - (NSHeight(imageRect) / 2)); |
+ destRect.size = imageRect.size; |
+ |
switch(self.hoverState) { |
case kHoverStateMouseOver: |
- [gHoverMouseOverImage drawInRect:imageRect |
+ [gHoverMouseOverImage drawInRect:destRect |
fromRect:imageRect |
operation:NSCompositeSourceOver |
fraction:1.0]; |
break; |
case kHoverStateMouseDown: |
- [gHoverMouseDownImage drawInRect:imageRect |
+ [gHoverMouseDownImage drawInRect:destRect |
fromRect:imageRect |
operation:NSCompositeSourceOver |
fraction:1.0]; |
@@ -164,12 +171,12 @@ NSString* const kFadeOutValueKeyPath = @"fadeOutValue"; |
} else { |
previousImage = gHoverMouseDownImage; |
} |
- [previousImage drawInRect:imageRect |
+ [previousImage drawInRect:destRect |
fromRect:imageRect |
operation:NSCompositeSourceOver |
fraction:1.0 - value]; |
} |
- [gHoverNoneImage drawInRect:imageRect |
+ [gHoverNoneImage drawInRect:destRect |
fromRect:imageRect |
operation:NSCompositeSourceOver |
fraction:value]; |