diff --git a/lib/tool-bar-manager.js b/lib/tool-bar-manager.js index b753e09..0bc940f 100644 --- a/lib/tool-bar-manager.js +++ b/lib/tool-bar-manager.js @@ -27,7 +27,7 @@ export class ToolBarManager { addItem (options) { const item = new ToolBarItem(options, this.group); this.toolBarView.addItem(item); - // this.touchBarManager.addItem(item); // TODO + // this.touchBarManager?.addItem(item); // TODO return item; } @@ -38,7 +38,7 @@ export class ToolBarManager { addButton (options) { const button = new ToolBarButtonView(options, this.group); this.toolBarView.addItem(button); - this.touchBarManager.addButton(button); + this.touchBarManager?.addButton(button); return button; } @@ -61,7 +61,7 @@ export class ToolBarManager { this.toolBarView.items .filter(item => item.group === this.group) .forEach(item => this.toolBarView.removeItem(item)); - this.touchBarManager.removeGroup(this.group); + this.touchBarManager?.removeGroup(this.group); } } diff --git a/lib/tool-bar.js b/lib/tool-bar.js index b2bfedd..b280fa9 100644 --- a/lib/tool-bar.js +++ b/lib/tool-bar.js @@ -1,16 +1,22 @@ import {ToolBarManager} from './tool-bar-manager'; import {ToolBarView} from './tool-bar-view'; -import {TouchBarManager} from './touch-bar-manager'; let toolBarView = null; let touchBarManager = null; export let useGutter = false; -export function activate() { +export async function activate() { toolBarView = new ToolBarView(); - touchBarManager = new TouchBarManager(); - useGutter = atom.config.get('tool-bar.useGutter') + await useTouchBar(); + useGutter = atom.config.get('tool-bar.useGutter'); +} + +async function useTouchBar() { + if (atom.config.get('tool-bar.useTouchBar') && process.platform === 'darwin') { + let TouchBarManager = await import('./touch-bar-manager'); + touchBarManager = new TouchBarManager(); + } } export function deactivate() { diff --git a/lib/touch-bar-manager.js b/lib/touch-bar-manager.js index 96abddb..b4b5001 100644 --- a/lib/touch-bar-manager.js +++ b/lib/touch-bar-manager.js @@ -13,7 +13,6 @@ export class TouchBarManager { } addButton (button) { - if (!this._useTouchBar()) return; if (this.buttons.length >= 7) return; this._renderButton(button).then(icon => { @@ -33,8 +32,6 @@ export class TouchBarManager { } update () { - if (!this._useTouchBar()) return; - if (this._updateDebounce) clearTimeout(this._updateDebounce); this._updateDebounce = setTimeout(() => this._setTouchBar(), 100); } @@ -43,11 +40,7 @@ export class TouchBarManager { this.buttons = this.buttons.filter(button => button.group !== group); this.update(); } - - _useTouchBar () { - return process.platform === 'darwin' && atom.config.get('tool-bar.useTouchBar'); - } - + _renderButton (button) { return document.fonts.ready.then(() => { if (!(button.element instanceof HTMLElement)) return;