Browse Source

Check that escape item is non-null before checking id

Kevin Sawicki 8 years ago
parent
commit
bbadeb62ac
2 changed files with 13 additions and 1 deletions
  1. 1 1
      lib/browser/api/touch-bar.js
  2. 12 0
      spec/api-touch-bar-spec.js

+ 1 - 1
lib/browser/api/touch-bar.js

@@ -101,7 +101,7 @@ class TouchBar extends EventEmitter {
 
     const interactionListener = (event, itemID, details) => {
       let item = this.items[itemID]
-      if (item == null && this.escapeItem.id === itemID) {
+      if (item == null && this.escapeItem != null && this.escapeItem.id === itemID) {
         item = this.escapeItem
       }
       if (item != null && item.onInteraction != null) {

+ 12 - 0
spec/api-touch-bar-spec.js

@@ -78,5 +78,17 @@ describe('TouchBar module', function () {
       window.setTouchBar(new TouchBar([new TouchBarLabel({label: 'two'})]))
       touchBar.escapeItem = null
     })
+
+    it('calls the callback on the items when a window interaction event fires', function (done) {
+      const button = new TouchBarButton({
+        label: 'bar',
+        click: () => {
+          done()
+        }
+      })
+      const touchBar = new TouchBar({items: [button]})
+      window.setTouchBar(touchBar)
+      window.emit('-touch-bar-interaction', {}, button.id)
+    })
   })
 })