fix: allow Tray with title only (without icon) on Mac (#13851)
This commit is contained in:
parent
1b7418fb7b
commit
5a0770f1d3
2 changed files with 40 additions and 20 deletions
|
@ -47,8 +47,7 @@ const CGFloat kVerticalTitleMargin = 2;
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id)initWithImage:(NSImage*)image icon:(atom::TrayIconCocoa*)icon {
|
- (id)initWithIcon:(atom::TrayIconCocoa*)icon {
|
||||||
image_.reset([image copy]);
|
|
||||||
trayIcon_ = icon;
|
trayIcon_ = icon;
|
||||||
menuController_ = nil;
|
menuController_ = nil;
|
||||||
highlight_mode_ = atom::TrayIcon::HighlightMode::SELECTION;
|
highlight_mode_ = atom::TrayIcon::HighlightMode::SELECTION;
|
||||||
|
@ -164,6 +163,8 @@ const CGFloat kVerticalTitleMargin = 2;
|
||||||
|
|
||||||
// The width of the icon.
|
// The width of the icon.
|
||||||
- (CGFloat)iconWidth {
|
- (CGFloat)iconWidth {
|
||||||
|
if (!image_ && title_)
|
||||||
|
return kHorizontalMargin;
|
||||||
CGFloat thickness = [[NSStatusBar systemStatusBar] thickness];
|
CGFloat thickness = [[NSStatusBar systemStatusBar] thickness];
|
||||||
CGFloat imageHeight = [image_ size].height;
|
CGFloat imageHeight = [image_ size].height;
|
||||||
CGFloat imageWidth = [image_ size].width;
|
CGFloat imageWidth = [image_ size].width;
|
||||||
|
@ -432,7 +433,9 @@ const CGFloat kVerticalTitleMargin = 2;
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
|
||||||
TrayIconCocoa::TrayIconCocoa() {}
|
TrayIconCocoa::TrayIconCocoa() {
|
||||||
|
status_item_view_.reset([[StatusItemView alloc] initWithIcon:this]);
|
||||||
|
}
|
||||||
|
|
||||||
TrayIconCocoa::~TrayIconCocoa() {
|
TrayIconCocoa::~TrayIconCocoa() {
|
||||||
[status_item_view_ removeItem];
|
[status_item_view_ removeItem];
|
||||||
|
@ -441,12 +444,7 @@ TrayIconCocoa::~TrayIconCocoa() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void TrayIconCocoa::SetImage(const gfx::Image& image) {
|
void TrayIconCocoa::SetImage(const gfx::Image& image) {
|
||||||
if (status_item_view_) {
|
[status_item_view_ setImage:image.IsEmpty() ? nil : image.AsNSImage()];
|
||||||
[status_item_view_ setImage:image.AsNSImage()];
|
|
||||||
} else {
|
|
||||||
status_item_view_.reset(
|
|
||||||
[[StatusItemView alloc] initWithImage:image.AsNSImage() icon:this]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TrayIconCocoa::SetPressedImage(const gfx::Image& image) {
|
void TrayIconCocoa::SetPressedImage(const gfx::Image& image) {
|
||||||
|
|
|
@ -2,18 +2,18 @@ const {remote} = require('electron')
|
||||||
const {Menu, Tray, nativeImage} = remote
|
const {Menu, Tray, nativeImage} = remote
|
||||||
|
|
||||||
describe('tray module', () => {
|
describe('tray module', () => {
|
||||||
|
let tray
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
tray = new Tray(nativeImage.createEmpty())
|
||||||
|
})
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
tray.destroy()
|
||||||
|
tray = null
|
||||||
|
})
|
||||||
|
|
||||||
describe('tray.setContextMenu', () => {
|
describe('tray.setContextMenu', () => {
|
||||||
let tray
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
tray = new Tray(nativeImage.createEmpty())
|
|
||||||
})
|
|
||||||
|
|
||||||
afterEach(() => {
|
|
||||||
tray.destroy()
|
|
||||||
tray = null
|
|
||||||
})
|
|
||||||
|
|
||||||
it('accepts menu instance', () => {
|
it('accepts menu instance', () => {
|
||||||
tray.setContextMenu(new Menu())
|
tray.setContextMenu(new Menu())
|
||||||
})
|
})
|
||||||
|
@ -22,4 +22,26 @@ describe('tray module', () => {
|
||||||
tray.setContextMenu(null)
|
tray.setContextMenu(null)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('tray.setImage', () => {
|
||||||
|
it('accepts empty image', () => {
|
||||||
|
tray.setImage(nativeImage.createEmpty())
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('tray.setPressedImage', () => {
|
||||||
|
it('accepts empty image', () => {
|
||||||
|
tray.setPressedImage(nativeImage.createEmpty())
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('tray.setTitle', () => {
|
||||||
|
it('accepts non-empty string', () => {
|
||||||
|
tray.setTitle('Hello World!')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('accepts empty string', () => {
|
||||||
|
tray.setTitle('')
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue