Make escape item a property instead of setter
This commit is contained in:
parent
21c1ddffb3
commit
b24b4212c5
3 changed files with 23 additions and 21 deletions
|
@ -2,8 +2,6 @@ const {EventEmitter} = require('events')
|
|||
|
||||
let nextItemID = 1
|
||||
|
||||
const DEFAULT_ESCAPE_ITEM = new EventEmitter()
|
||||
|
||||
class TouchBar extends EventEmitter {
|
||||
// Bind a touch bar to a window
|
||||
static _setOnWindow (touchBar, window) {
|
||||
|
@ -32,7 +30,7 @@ class TouchBar extends EventEmitter {
|
|||
this.windowListeners = {}
|
||||
this.items = {}
|
||||
this.ordereredItems = []
|
||||
this.escapeItem = DEFAULT_ESCAPE_ITEM
|
||||
this.escapeItem = null
|
||||
this.changeListener = (item) => {
|
||||
this.emit('change', item.id, item.type)
|
||||
}
|
||||
|
@ -53,19 +51,24 @@ class TouchBar extends EventEmitter {
|
|||
})
|
||||
}
|
||||
|
||||
setEscapeItem (item) {
|
||||
set escapeItem (item) {
|
||||
if (item != null && !(item instanceof TouchBarItem)) {
|
||||
throw new Error('Escape item must be an instance of TouchBarItem')
|
||||
}
|
||||
if (item == null) {
|
||||
item = DEFAULT_ESCAPE_ITEM
|
||||
if (this.escapeItem != null) {
|
||||
this.escapeItem.removeListener('change', this.changeListener)
|
||||
}
|
||||
this._escapeItem = item
|
||||
if (this.escapeItem != null) {
|
||||
this.escapeItem.on('change', this.changeListener)
|
||||
}
|
||||
this.escapeItem.removeListener('change', this.changeListener)
|
||||
this.escapeItem = item
|
||||
this.escapeItem.on('change', this.changeListener)
|
||||
this.emit('escape-item-change', item)
|
||||
}
|
||||
|
||||
get escapeItem () {
|
||||
return this._escapeItem
|
||||
}
|
||||
|
||||
_addToWindow (window) {
|
||||
const {id} = window
|
||||
|
||||
|
@ -80,7 +83,7 @@ class TouchBar extends EventEmitter {
|
|||
this.on('change', changeListener)
|
||||
|
||||
const escapeItemListener = (item) => {
|
||||
window._setEscapeTouchBarItem(item)
|
||||
window._setEscapeTouchBarItem(item != null ? item : {})
|
||||
}
|
||||
this.on('escape-item-change', escapeItemListener)
|
||||
|
||||
|
@ -107,7 +110,7 @@ class TouchBar extends EventEmitter {
|
|||
this.windowListeners[id] = removeListeners
|
||||
|
||||
window._setTouchBarItems(this.ordereredItems)
|
||||
window._setEscapeTouchBarItem(this.escapeItem)
|
||||
escapeItemListener(this.escapeItem)
|
||||
}
|
||||
|
||||
_removeFromWindow (window) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue