try to fix again:
fixed: squeeze shortcut keys can't be held down
This commit is contained in:
1 parent
d3ce55cbd6
commit
94eb4dd8a0
5 files changed
+19
-19
No files matched your search
@@ -600,12 +600,12 @@ import UIKit
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc public func sendAutoReleaseComboCommand(cmdString: [String]?, delay: TimeInterval = 0.2, index: Int = 0, pressOnly: Bool = false, releaseOnly:Bool = false) { // we need a large delay for WAN streaming
|
@objc public func sendAutoReleaseComboCommand(cmdStrings: [String]?, delay: TimeInterval = 0.2, index: Int = 0, pressOnly: Bool = false, releaseOnly:Bool = false) { // we need a large delay for WAN streaming
|
||||||
// 如果已处理完所有按键,则开始释放按键
|
// 如果已处理完所有按键,则开始释放按键
|
||||||
guard let cmdString = cmdString else { return }
|
guard let cmdStrings = cmdStrings else { return }
|
||||||
|
|
||||||
if releaseOnly {
|
if releaseOnly {
|
||||||
for keyStr in cmdString.reversed() {
|
for keyStr in cmdStrings.reversed() {
|
||||||
if let keyCode = CommandManager.keyboardButtonMappings[keyStr] {
|
if let keyCode = CommandManager.keyboardButtonMappings[keyStr] {
|
||||||
LiSendKeyboardEvent(keyCode, Int8(KEY_ACTION_UP), 0) // 释放按键
|
LiSendKeyboardEvent(keyCode, Int8(KEY_ACTION_UP), 0) // 释放按键
|
||||||
}
|
}
|
||||||
@@ -616,11 +616,11 @@ import UIKit
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
guard index < cmdString.count else {
|
guard index < cmdStrings.count else {
|
||||||
// 释放按键
|
// 释放按键
|
||||||
DispatchQueue.main.asyncAfter(deadline: .now()) {
|
DispatchQueue.main.asyncAfter(deadline: .now()) {
|
||||||
if pressOnly {return}
|
if pressOnly {return}
|
||||||
for keyStr in cmdString.reversed() { // 从后往前释放按键
|
for keyStr in cmdStrings.reversed() { // 从后往前释放按键
|
||||||
if let keyCode = CommandManager.keyboardButtonMappings[keyStr] {
|
if let keyCode = CommandManager.keyboardButtonMappings[keyStr] {
|
||||||
LiSendKeyboardEvent(keyCode, Int8(KEY_ACTION_UP), 0) // 释放按键
|
LiSendKeyboardEvent(keyCode, Int8(KEY_ACTION_UP), 0) // 释放按键
|
||||||
}
|
}
|
||||||
@@ -632,17 +632,17 @@ import UIKit
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 获取当前按键的映射值
|
// 获取当前按键的映射值
|
||||||
if let keyCode = CommandManager.keyboardButtonMappings[cmdString[index]] {
|
if let keyCode = CommandManager.keyboardButtonMappings[cmdStrings[index]] {
|
||||||
// 发送当前按键的按下事件
|
// 发送当前按键的按下事件
|
||||||
LiSendKeyboardEvent(keyCode, Int8(KEY_ACTION_DOWN), 0)
|
LiSendKeyboardEvent(keyCode, Int8(KEY_ACTION_DOWN), 0)
|
||||||
} else if let mouseButtonCode = CommandManager.mouseButtonMappings[cmdString[index]]{
|
} else if let mouseButtonCode = CommandManager.mouseButtonMappings[cmdStrings[index]]{
|
||||||
LiSendMouseButtonEvent(CChar(BUTTON_ACTION_PRESS), mouseButtonCode)
|
LiSendMouseButtonEvent(CChar(BUTTON_ACTION_PRESS), mouseButtonCode)
|
||||||
} else {
|
} else {
|
||||||
print("No mapping found for \(cmdString[index])")
|
print("No mapping found for \(cmdStrings[index])")
|
||||||
}
|
}
|
||||||
// 延迟后递归处理下一个按键
|
// 延迟后递归处理下一个按键
|
||||||
DispatchQueue.main.asyncAfter(deadline: .now() + delay) {
|
DispatchQueue.main.asyncAfter(deadline: .now() + delay) {
|
||||||
self.sendAutoReleaseComboCommand(cmdString: cmdString, delay: delay, index: index + 1)
|
self.sendAutoReleaseComboCommand(cmdStrings: cmdStrings, delay: delay, index: index + 1, pressOnly: pressOnly, releaseOnly: releaseOnly)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -398,7 +398,7 @@ import SVGKit
|
|||||||
if self.cmdString.contains("ERASER"){
|
if self.cmdString.contains("ERASER"){
|
||||||
self.functionalButtonString = "ERASER"
|
self.functionalButtonString = "ERASER"
|
||||||
}
|
}
|
||||||
if !self.functionalButtonString.isEmpty {
|
if self.isFunctionalButton {
|
||||||
self.buttonMode = .movable
|
self.buttonMode = .movable
|
||||||
if self.functionalButtonString == "PENCILHOVER" {self.buttonMode = .regular}
|
if self.functionalButtonString == "PENCILHOVER" {self.buttonMode = .regular}
|
||||||
}
|
}
|
||||||
@@ -460,7 +460,7 @@ import SVGKit
|
|||||||
self.hasAutoTap = self.widgetType == WidgetTypeEnum.button && self.functionalButtonString == "" && self.motionControlButtonString == ""
|
self.hasAutoTap = self.widgetType == WidgetTypeEnum.button && self.functionalButtonString == "" && self.motionControlButtonString == ""
|
||||||
self.isMousePadWithButtonActions = CommandManager.mousePadWithButtonActions.contains(self.touchPadString) && widgetType == WidgetTypeEnum.touchPad
|
self.isMousePadWithButtonActions = CommandManager.mousePadWithButtonActions.contains(self.touchPadString) && widgetType == WidgetTypeEnum.touchPad
|
||||||
self.hasInertia = CommandManager.inertialTouchPads.contains(self.touchPadString)
|
self.hasInertia = CommandManager.inertialTouchPads.contains(self.touchPadString)
|
||||||
self.isFunctionalButton = self.functionalButtonString != ""
|
self.isFunctionalButton = self.functionalButtonString != "" || self.cmdString.contains("+")
|
||||||
self.hasHapticFeedback = !self.comboButtonStrings.isEmpty || CommandManager.directionPads.contains(self.touchPadString)
|
self.hasHapticFeedback = !self.comboButtonStrings.isEmpty || CommandManager.directionPads.contains(self.touchPadString)
|
||||||
self.isDirectionPad = self.widgetType == WidgetTypeEnum.touchPad && CommandManager.directionPads.contains(self.touchPadString)
|
self.isDirectionPad = self.widgetType == WidgetTypeEnum.touchPad && CommandManager.directionPads.contains(self.touchPadString)
|
||||||
self.isStickWheel = self.widgetType == WidgetTypeEnum.touchPad && CommandManager.stickWheels.contains(self.touchPadString)
|
self.isStickWheel = self.widgetType == WidgetTypeEnum.touchPad && CommandManager.stickWheels.contains(self.touchPadString)
|
||||||
@@ -1509,7 +1509,7 @@ import SVGKit
|
|||||||
autoReleaseComboButtons.removeAll{
|
autoReleaseComboButtons.removeAll{
|
||||||
Set(CommandManager.pencilProButtonCmds).contains($0)
|
Set(CommandManager.pencilProButtonCmds).contains($0)
|
||||||
}
|
}
|
||||||
CommandManager.shared.sendAutoReleaseComboCommand(cmdString: autoReleaseComboButtons) // send multi-key command
|
CommandManager.shared.sendAutoReleaseComboCommand(cmdStrings: autoReleaseComboButtons) // send multi-key command
|
||||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
|
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
|
||||||
self.buttonUpVisualEffect()
|
self.buttonUpVisualEffect()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -259,7 +259,7 @@ import UIKit
|
|||||||
if !pencilProEnabled {return}
|
if !pencilProEnabled {return}
|
||||||
if doubleTapShorcuts.isEmpty {return}
|
if doubleTapShorcuts.isEmpty {return}
|
||||||
let keyStrings = CommandManager.shared.extractAutoReleaseButtonStrings(from: doubleTapShorcuts[shortcutIndex])
|
let keyStrings = CommandManager.shared.extractAutoReleaseButtonStrings(from: doubleTapShorcuts[shortcutIndex])
|
||||||
CommandManager.shared.sendAutoReleaseComboCommand(cmdString: keyStrings, delay: 0.1)
|
CommandManager.shared.sendAutoReleaseComboCommand(cmdStrings: keyStrings, delay: 0.1)
|
||||||
shortcutIndex = (shortcutIndex + 1) % doubleTapShorcuts.count
|
shortcutIndex = (shortcutIndex + 1) % doubleTapShorcuts.count
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -278,12 +278,12 @@ import UIKit
|
|||||||
|
|
||||||
switch squeeze.phase {
|
switch squeeze.phase {
|
||||||
case .began:
|
case .began:
|
||||||
if keepPressedUntilRelease {CommandManager.shared.sendAutoReleaseComboCommand(cmdString: squeezePressKeyStrings, delay: 0.1, pressOnly: true)}
|
if keepPressedUntilRelease {CommandManager.shared.sendAutoReleaseComboCommand(cmdStrings: squeezePressKeyStrings, delay: 0.1, pressOnly: true)}
|
||||||
else {CommandManager.shared.sendAutoReleaseComboCommand(cmdString: squeezePressKeyStrings, delay: 0.1)}
|
else {CommandManager.shared.sendAutoReleaseComboCommand(cmdStrings: squeezePressKeyStrings, delay: 0.1)}
|
||||||
break
|
break
|
||||||
case .ended, .cancelled:
|
case .ended, .cancelled:
|
||||||
if keepPressedUntilRelease {CommandManager.shared.sendAutoReleaseComboCommand(cmdString: squeezePressKeyStrings, releaseOnly: true)}
|
if keepPressedUntilRelease {CommandManager.shared.sendAutoReleaseComboCommand(cmdStrings: squeezePressKeyStrings, releaseOnly: true)}
|
||||||
else {CommandManager.shared.sendAutoReleaseComboCommand(cmdString: squeezeReleaseKeyStrings, delay: 0.1)}
|
else {CommandManager.shared.sendAutoReleaseComboCommand(cmdStrings: squeezeReleaseKeyStrings, delay: 0.1)}
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -1338,7 +1338,7 @@
|
|||||||
dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC));
|
dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC));
|
||||||
dispatch_after(delay, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
dispatch_after(delay, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||||
NSArray* hdrCommand = [CommandManager.shared extractAutoReleaseButtonStringsFrom:@"WIN+ALT+B"];
|
NSArray* hdrCommand = [CommandManager.shared extractAutoReleaseButtonStringsFrom:@"WIN+ALT+B"];
|
||||||
[CommandManager.shared sendAutoReleaseComboCommandWithCmdString:hdrCommand delay:0.15 index:0 pressOnly:false releaseOnly:false];
|
[CommandManager.shared sendAutoReleaseComboCommandWithCmdStrings:hdrCommand delay:0.15 index:0 pressOnly:false releaseOnly:false];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -406,7 +406,7 @@ import UIKit
|
|||||||
private func sendKeyboardCommand(_ cmd: RemoteCommand) {
|
private func sendKeyboardCommand(_ cmd: RemoteCommand) {
|
||||||
print("Sending key-value")
|
print("Sending key-value")
|
||||||
let keyboardCmdStrings = CommandManager.shared.extractAutoReleaseButtonStrings(from: cmd.cmdString)
|
let keyboardCmdStrings = CommandManager.shared.extractAutoReleaseButtonStrings(from: cmd.cmdString)
|
||||||
CommandManager.shared.sendAutoReleaseComboCommand(cmdString: keyboardCmdStrings!)
|
CommandManager.shared.sendAutoReleaseComboCommand(cmdStrings: keyboardCmdStrings!)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func gestureRecognizer(
|
public func gestureRecognizer(
|
||||||
|
|||||||
Reference in new issue
Block a user