diff --git a/MTMR/AppleScriptTouchBarItem.swift b/MTMR/AppleScriptTouchBarItem.swift index 82b54b6..faeefa3 100644 --- a/MTMR/AppleScriptTouchBarItem.swift +++ b/MTMR/AppleScriptTouchBarItem.swift @@ -15,7 +15,7 @@ class AppleScriptTouchBarItem: CustomButtonTouchBarItem { } self.script = script self.isBordered = false - DispatchQueue.main.async { + DispatchQueue.appleScriptQueue.async { var error: NSDictionary? guard script.compileAndReturnError(&error) else { #if DEBUG @@ -42,8 +42,11 @@ class AppleScriptTouchBarItem: CustomButtonTouchBarItem { DispatchQueue.main.async { self.title = scriptResult self.forceHideConstraint.isActive = scriptResult == "" + #if DEBUG + print("did set new script result title \(scriptResult)") + #endif } - DispatchQueue.main.asyncAfter(deadline: .now() + self.interval) { [weak self] in + DispatchQueue.appleScriptQueue.asyncAfter(deadline: .now() + self.interval) { [weak self] in self?.refreshAndSchedule() } } @@ -66,3 +69,7 @@ extension SourceProtocol { return NSAppleScript(source: source) } } + +extension DispatchQueue { + static let appleScriptQueue = DispatchQueue(label: "mtmr.applescript") +} diff --git a/MTMR/TouchBarController.swift b/MTMR/TouchBarController.swift index ef3be8b..d408724 100644 --- a/MTMR/TouchBarController.swift +++ b/MTMR/TouchBarController.swift @@ -257,10 +257,12 @@ class TouchBarController: NSObject, NSTouchBarDelegate { return {} } return { - var error: NSDictionary? - appleScript.executeAndReturnError(&error) - if let error = error { - print("error \(error) when handling \(item) ") + DispatchQueue.appleScriptQueue.async { + var error: NSDictionary? + appleScript.executeAndReturnError(&error) + if let error = error { + print("error \(error) when handling \(item) ") + } } } case .shellScript(executable: let executable, parameters: let parameters):