Index: chrome/browser/ui/cocoa/image_button_cell.mm |
diff --git a/chrome/browser/ui/cocoa/image_button_cell.mm b/chrome/browser/ui/cocoa/image_button_cell.mm |
index fe6dcb9f6504a0c61637f461ecffefc33ac21212..bb81227123cacb13f1fc97b15415dde73a82832f 100644 |
--- a/chrome/browser/ui/cocoa/image_button_cell.mm |
+++ b/chrome/browser/ui/cocoa/image_button_cell.mm |
@@ -138,10 +138,25 @@ const CGFloat kImageNoFocusAlpha = 0.65; |
- (void)setIsMouseInside:(BOOL)isMouseInside { |
if (isMouseInside_ != isMouseInside) { |
isMouseInside_ = isMouseInside; |
- [[self controlView] setNeedsDisplay:YES]; |
+ NSView<ImageButton>* control = |
+ static_cast<NSView<ImageButton>*>([self controlView]); |
+ if ([control respondsToSelector:@selector(mouseInsideStateDidChange:)]) { |
+ [control mouseInsideStateDidChange:isMouseInside]; |
+ } |
+ [control setNeedsDisplay:YES]; |
} |
} |
+- (void)setShowsBorderOnlyWhileMouseInside:(BOOL)show { |
+ VLOG_IF(1, !show) << "setShowsBorderOnlyWhileMouseInside:NO ignored"; |
+} |
+ |
+- (BOOL)showsBorderOnlyWhileMouseInside { |
+ // Always returns YES so that buttons always get mouse tracking even when |
+ // disabled. The reload button (and possibly others) depend on this. |
+ return YES; |
+} |
+ |
- (void)mouseEntered:(NSEvent*)theEvent { |
[self setIsMouseInside:YES]; |
} |