diff --git a/atom/browser/ui/cocoa/atom_touch_bar.mm b/atom/browser/ui/cocoa/atom_touch_bar.mm index a21fbc5497a3..b4a30c9950f1 100644 --- a/atom/browser/ui/cocoa/atom_touch_bar.mm +++ b/atom/browser/ui/cocoa/atom_touch_bar.mm @@ -520,6 +520,15 @@ static NSString* const ImageScrubberItemIdentifier = @"scrubber.image.item"; else control.segmentStyle = NSSegmentStyleAutomatic; + std::string segmentMode; + settings.Get("mode", &segmentMode); + if (segmentMode == "multiple") + control.trackingMode = NSSegmentSwitchTrackingSelectAny; + else if (segmentMode == "buttons") + control.trackingMode = NSSegmentSwitchTrackingMomentary; + else + control.trackingMode = NSSegmentSwitchTrackingSelectOne; + std::vector segments; settings.Get("segments", &segments); diff --git a/lib/browser/api/touch-bar.js b/lib/browser/api/touch-bar.js index 4bb129449eb9..b2f48d239d7c 100644 --- a/lib/browser/api/touch-bar.js +++ b/lib/browser/api/touch-bar.js @@ -264,11 +264,12 @@ TouchBar.TouchBarSegmentedControl = class TouchBarSegmentedControl extends Touch constructor (config) { super() if (config == null) config = {} - const {segmentStyle, segments, selectedIndex, change} = config + const {segmentStyle, segments, selectedIndex, change, mode} = config this.type = 'segmented_control' this._addLiveProperty('segmentStyle', segmentStyle) this._addLiveProperty('segments', segments || []) this._addLiveProperty('selectedIndex', selectedIndex) + this._addLiveProperty('mode', mode) if (typeof change === 'function') { this.onInteraction = (details) => {