diff --git a/src/MacVim/MMTabline/MMHoverButton.h b/src/MacVim/MMTabline/MMHoverButton.h index 43351a9b73..096b192806 100644 --- a/src/MacVim/MMTabline/MMHoverButton.h +++ b/src/MacVim/MMTabline/MMHoverButton.h @@ -5,6 +5,7 @@ @interface MMHoverButton : NSButton @property (nonatomic, retain) NSColor *fgColor; +@property (nonatomic, retain) NSImage *imageTemplate; typedef enum : NSUInteger { MMHoverButtonImageAddTab = 0, diff --git a/src/MacVim/MMTabline/MMHoverButton.m b/src/MacVim/MMTabline/MMHoverButton.m index 0b9b076f85..ec624a766d 100644 --- a/src/MacVim/MMTabline/MMHoverButton.m +++ b/src/MacVim/MMTabline/MMHoverButton.m @@ -90,11 +90,12 @@ - (instancetype)initWithFrame:(NSRect)frameRect - (void)setFgColor:(NSColor *)color { _fgColor = color; - self.image = super.image; + [self setImageTemplate:_imageTemplate]; } -- (void)setImage:(NSImage *)imageTemplate +- (void)setImageTemplate:(NSImage *)imageTemplate { + _imageTemplate = imageTemplate; _circle.cornerRadius = imageTemplate.size.width / 2.0; NSColor *fillColor = self.fgColor ?: NSColor.controlTextColor; NSImage *image = [NSImage imageWithSize:imageTemplate.size @@ -105,16 +106,7 @@ - (void)setImage:(NSImage *)imageTemplate NSRectFillUsingOperation(dstRect, NSCompositingOperationSourceAtop); return YES; }]; - NSImage *alternateImage = [NSImage imageWithSize:imageTemplate.size - flipped:NO - drawingHandler:^BOOL(NSRect dstRect) { - [[fillColor colorWithAlphaComponent:0.2] set]; - [[NSBezierPath bezierPathWithOvalInRect:dstRect] fill]; - [image drawInRect:dstRect]; - return YES; - }]; - super.image = image; - self.alternateImage = alternateImage; + self.image = image; } - (void)setEnabled:(BOOL)enabled diff --git a/src/MacVim/MMTabline/MMTab.m b/src/MacVim/MMTabline/MMTab.m index 235af717dc..04a8cf15fd 100644 --- a/src/MacVim/MMTabline/MMTab.m +++ b/src/MacVim/MMTabline/MMTab.m @@ -40,7 +40,7 @@ - (instancetype)initWithFrame:(NSRect)frameRect tabline:(MMTabline *)tabline _tabline = tabline; _closeButton = [MMHoverButton new]; - _closeButton.image = [MMHoverButton imageFromType:MMHoverButtonImageCloseTab]; + _closeButton.imageTemplate = [MMHoverButton imageFromType:MMHoverButtonImageCloseTab]; _closeButton.target = self; _closeButton.action = @selector(closeTab:); _closeButton.translatesAutoresizingMaskIntoConstraints = NO; diff --git a/src/MacVim/MMTabline/MMTabline.m b/src/MacVim/MMTabline/MMTabline.m index 781c11c935..7b8f6ecfa9 100644 --- a/src/MacVim/MMTabline/MMTabline.m +++ b/src/MacVim/MMTabline/MMTabline.m @@ -17,7 +17,7 @@ static MMHoverButton* MakeHoverButton(MMTabline *tabline, MMHoverButtonImage imageType, NSString *tooltip, SEL action, BOOL continuous) { MMHoverButton *button = [MMHoverButton new]; - button.image = [MMHoverButton imageFromType:imageType]; + button.imageTemplate = [MMHoverButton imageFromType:imageType]; button.translatesAutoresizingMaskIntoConstraints = NO; button.target = tabline; button.action = action;