mirror of
https://github.com/Toxblh/MTMR.git
synced 2026-01-11 17:38:38 +00:00
Merge pull request #75 from ReDetection/experimental-private-queue
experimental: run applescript on separate serial queue
This commit is contained in:
commit
fd537bcdfe
@ -15,7 +15,7 @@ class AppleScriptTouchBarItem: CustomButtonTouchBarItem {
|
|||||||
}
|
}
|
||||||
self.script = script
|
self.script = script
|
||||||
self.isBordered = false
|
self.isBordered = false
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.appleScriptQueue.async {
|
||||||
var error: NSDictionary?
|
var error: NSDictionary?
|
||||||
guard script.compileAndReturnError(&error) else {
|
guard script.compileAndReturnError(&error) else {
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
@ -42,8 +42,11 @@ class AppleScriptTouchBarItem: CustomButtonTouchBarItem {
|
|||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
self.title = scriptResult
|
self.title = scriptResult
|
||||||
self.forceHideConstraint.isActive = 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()
|
self?.refreshAndSchedule()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -66,3 +69,7 @@ extension SourceProtocol {
|
|||||||
return NSAppleScript(source: source)
|
return NSAppleScript(source: source)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension DispatchQueue {
|
||||||
|
static let appleScriptQueue = DispatchQueue(label: "mtmr.applescript")
|
||||||
|
}
|
||||||
|
|||||||
@ -257,12 +257,14 @@ class TouchBarController: NSObject, NSTouchBarDelegate {
|
|||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
|
DispatchQueue.appleScriptQueue.async {
|
||||||
var error: NSDictionary?
|
var error: NSDictionary?
|
||||||
appleScript.executeAndReturnError(&error)
|
appleScript.executeAndReturnError(&error)
|
||||||
if let error = error {
|
if let error = error {
|
||||||
print("error \(error) when handling \(item) ")
|
print("error \(error) when handling \(item) ")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case .shellScript(executable: let executable, parameters: let parameters):
|
case .shellScript(executable: let executable, parameters: let parameters):
|
||||||
return {
|
return {
|
||||||
let task = Process()
|
let task = Process()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user