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..1b2ab296f67f798d6c3e66fa559ca841a8d1413f 100644 |
--- a/chrome/browser/ui/cocoa/hover_close_button.mm |
+++ b/chrome/browser/ui/cocoa/hover_close_button.mm |
@@ -135,19 +135,25 @@ 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 = (NSHeight(destRect) / 2) - (NSHeight(imageRect) / 2); |
Nico
2011/08/08 18:23:06
Do you want to clamp this to integer coordinates?
|
+ 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 +170,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]; |