mirror of
https://github.com/Toxblh/MTMR.git
synced 2026-01-10 17:08:39 +00:00
experimental: run applescript on separate serial queue
This commit is contained in:
parent
b73f8865a9
commit
e9c69f6461
@ -15,7 +15,7 @@ class AppleScriptTouchBarItem: CustomButtonTouchBarItem {
|
||||
}
|
||||
self.script = script
|
||||
button.bezelColor = .clear
|
||||
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")
|
||||
}
|
||||
|
||||
@ -262,10 +262,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):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user