Browse Source

Check that window responds to touchBar selector for pre-10.12.1 compat

Kevin Sawicki 8 years ago
parent
commit
ca2898a60e
2 changed files with 5 additions and 1 deletions
  1. 2 0
      atom/browser/native_window_mac.mm
  2. 3 1
      spec/api-touch-bar-spec.js

+ 2 - 0
atom/browser/native_window_mac.mm

@@ -369,6 +369,8 @@ bool ScopedDisableResize::disable_resize_ = false;
 }
 
 - (void)resetTouchBar:(const std::vector<mate::PersistentDictionary>&)settings {
+  if (![self respondsToSelector:@selector(touchBar)]) return;
+
   atom_touch_bar_.reset([[AtomTouchBar alloc] initWithDelegate:self
                                                         window:shell_
                                                       settings:settings]);

+ 3 - 1
spec/api-touch-bar-spec.js

@@ -33,16 +33,18 @@ describe('TouchBar module', function () {
     })
 
     it('can be added to and removed from a window', function () {
+      const label = new TouchBarLabel({label: 'bar'})
       const touchBar = new TouchBar([
         new TouchBarButton({label: 'foo', backgroundColor: '#F00', click: () => {}}),
         new TouchBarColorPicker({selectedColor: '#F00', change: () => {}}),
         new TouchBarGroup({items: new TouchBar([new TouchBarLabel({label: 'hello'})])}),
-        new TouchBarLabel({label: 'bar'}),
+        label,
         new TouchBarPopover({items: new TouchBar([new TouchBarButton({label: 'pop'})])}),
         new TouchBarSlider({label: 'slide', value: 5, minValue: 2, maxValue: 75, change: () => {}}),
         new TouchBarSpacer({size: 'large'})
       ])
       window.setTouchBar(touchBar)
+      label.label = 'baz'
       window.setTouchBar()
       window.setTouchBar(new TouchBar([new TouchBarLabel({label: 'two'})]))
     })