Index: chrome/browser/cocoa/extensions/browser_action_button.mm |
diff --git a/chrome/browser/cocoa/extensions/browser_action_button.mm b/chrome/browser/cocoa/extensions/browser_action_button.mm |
index 8f1150a8f1467d24281614cb66b71cb2dc4c25e8..946f87229b8b3ad4efe070ad2fd2da66029961d2 100644 |
--- a/chrome/browser/cocoa/extensions/browser_action_button.mm |
+++ b/chrome/browser/cocoa/extensions/browser_action_button.mm |
@@ -10,6 +10,7 @@ |
#include "base/logging.h" |
#include "base/sys_string_conversions.h" |
#include "chrome/browser/cocoa/extensions/extension_action_context_menu.h" |
+#import "chrome/browser/cocoa/image_utils.h" |
#include "chrome/browser/extensions/image_loading_tracker.h" |
#include "chrome/common/extensions/extension.h" |
#include "chrome/common/extensions/extension_action.h" |
@@ -303,16 +304,16 @@ class ExtensionImageTrackerBridge : public NotificationObserver, |
[[self cell] setIconShadow]; |
NSImage* actionImage = [self image]; |
- // Never draw within a flipped coordinate system. |
- // TODO(andybons): Figure out why |flipped| can be yes in certain cases. |
- // http://crbug.com/38943 |
- [actionImage setFlipped:NO]; |
- CGFloat xPos = std::floor((NSWidth(bounds) - [actionImage size].width) / 2); |
- CGFloat yPos = std::floor((NSHeight(bounds) - [actionImage size].height) / 2); |
- [actionImage drawAtPoint:NSMakePoint(xPos, yPos) |
- fromRect:NSZeroRect |
- operation:NSCompositeSourceOver |
- fraction:1.0]; |
+ const NSSize imageSize = [actionImage size]; |
+ const NSRect imageRect = |
+ NSMakeRect(std::floor((NSWidth(bounds) - imageSize.width) / 2.0), |
+ std::floor((NSHeight(bounds) - imageSize.height) / 2.0), |
+ imageSize.width, imageSize.height); |
+ [actionImage drawInRect:imageRect |
+ fromRect:NSZeroRect |
+ operation:NSCompositeSourceOver |
+ fraction:1.0 |
+ neverFlipped:YES]; |
bounds.origin.y += kShadowOffset - kBrowserActionBadgeOriginYOffset; |
bounds.origin.x -= kShadowOffset; |