diff --git a/VoidLink/Base.lproj/iPad.storyboard b/VoidLink/Base.lproj/iPad.storyboard
index 831f22a9..4765556b 100644
--- a/VoidLink/Base.lproj/iPad.storyboard
+++ b/VoidLink/Base.lproj/iPad.storyboard
@@ -1380,16 +1380,16 @@
-
+
-
+
@@ -1495,16 +1495,16 @@
-
+
-
-
+
-
+
-
+
@@ -2258,16 +2258,16 @@
-
+
-
-
+
+
-
+
@@ -2324,8 +2324,6 @@
-
-
@@ -2344,6 +2342,8 @@
+
+
diff --git a/VoidLink/Database/DataManager.h b/VoidLink/Database/DataManager.h
index df00dc02..4f56d12b 100644
--- a/VoidLink/Database/DataManager.h
+++ b/VoidLink/Database/DataManager.h
@@ -126,7 +126,7 @@ typedef NS_ENUM(NSInteger, WidgetSizeTransition) {
hapticEngine:(NSInteger)hapticEngine
edgeSlidingSensitivity:(CGFloat)edgeSlidingSensitivity
audioEngine:(NSInteger)audioEngine
- appendLeftClick:(BOOL)appendLeftClick
+ delayLeftClick:(BOOL)delayLeftClick
duckOtherApps:(BOOL)duckOtherApps
muteInBackground:(BOOL)muteInBackground
backgroundSessionTimer:(NSInteger)backgroundSessionTimer;
diff --git a/VoidLink/Database/DataManager.m b/VoidLink/Database/DataManager.m
index 02ee6214..2a948f78 100644
--- a/VoidLink/Database/DataManager.m
+++ b/VoidLink/Database/DataManager.m
@@ -109,7 +109,7 @@
hapticEngine:(NSInteger)hapticEngine
edgeSlidingSensitivity:(CGFloat)edgeSlidingSensitivity
audioEngine:(NSInteger)audioEngine
- appendLeftClick:(BOOL)appendLeftClick
+ delayLeftClick:(BOOL)delayLeftClick
duckOtherApps:(BOOL)duckOtherApps
muteInBackground:(BOOL)muteInBackground
backgroundSessionTimer:(NSInteger)backgroundSessionTimer{
@@ -171,7 +171,7 @@
settingsToSave.hapticEngine = [NSNumber numberWithInteger:hapticEngine];
settingsToSave.edgeSlidingSensitivity = [NSNumber numberWithFloat:edgeSlidingSensitivity];
settingsToSave.audioEngine = [NSNumber numberWithInteger:audioEngine];
- settingsToSave.appendLeftClick = appendLeftClick;
+ settingsToSave.delayLeftClick = delayLeftClick;
settingsToSave.duckOtherApps = duckOtherApps;
settingsToSave.muteInBackground = muteInBackground;
settingsToSave.rememberFoldState = rememberFoldState;
diff --git a/VoidLink/Database/TemporarySettings.h b/VoidLink/Database/TemporarySettings.h
index c4883e98..48441729 100644
--- a/VoidLink/Database/TemporarySettings.h
+++ b/VoidLink/Database/TemporarySettings.h
@@ -83,7 +83,7 @@
@property (nonatomic, retain) NSNumber * appTheme;
@property (nonatomic, retain) NSNumber * edgeSlidingSensitivity;
@property (nonatomic, retain) NSNumber * audioEngine;
-@property (nonatomic) BOOL appendLeftClick;
+@property (nonatomic) BOOL delayLeftClick;
@property (nonatomic) BOOL duckOtherApps;
@property (nonatomic) BOOL muteInBackground;
@property (nonatomic, retain) NSNumber * framePacingMode;
diff --git a/VoidLink/Database/TemporarySettings.m b/VoidLink/Database/TemporarySettings.m
index 29380707..6de6f4d0 100644
--- a/VoidLink/Database/TemporarySettings.m
+++ b/VoidLink/Database/TemporarySettings.m
@@ -140,7 +140,7 @@
self.hapticEngine = settings.hapticEngine;
self.uniqueId = settings.uniqueId;
self.audioEngine = settings.audioEngine;
- self.appendLeftClick = settings.appendLeftClick;
+ self.delayLeftClick = settings.delayLeftClick;
self.duckOtherApps = settings.duckOtherApps;
self.muteInBackground = settings.muteInBackground;
#endif
diff --git a/VoidLink/Input/AbsoluteTouchHandler.m b/VoidLink/Input/AbsoluteTouchHandler.m
index 841b2f6a..f2e90cd2 100644
--- a/VoidLink/Input/AbsoluteTouchHandler.m
+++ b/VoidLink/Input/AbsoluteTouchHandler.m
@@ -17,7 +17,7 @@
#define LONG_PRESS_ACTIVATION_DELAY 0.650f
// How far the finger can move before it cancels a right click
-#define LONG_PRESS_ACTIVATION_DELTA 0.01f
+#define LONG_PRESS_ACTIVATION_DELTA 0.02f
// How long the double tap deadzone stays in effect between touch up and touch down
#define DOUBLE_TAP_DEAD_ZONE_DELAY 0.250f
@@ -34,20 +34,30 @@
UITouch* lastTouchUp;
CGPoint lastTouchUpLocation;
+ CGPoint touchBeganLocation;
+ CGPoint movingTouchLocation;
+
+ NSTimeInterval touchBeganTimeStamp;
+ NSTimeInterval leftClickTimeThreshold;
+
// upper screen edge check
bool touchPointSpawnedAtUpperScreenEdge;
CGFloat slideGestureVerticalThreshold;
CGFloat screenWidthWithThreshold;
CGFloat _edgeTolerance;
- bool _appendMouseLeftClick;
+ bool _delayMouseLeftClick;
+
+ bool rightButtonClicked;
}
- (id)initWithView:(StreamView*)view andSettings:(TemporarySettings*)settings {
self = [self init];
self->streamView = view;
- _appendMouseLeftClick = settings.appendLeftClick;
+ _delayMouseLeftClick = settings.delayLeftClick;
+
+ leftClickTimeThreshold = 0.15;
// upper screen check
_edgeTolerance = settings.edgeSlidingSensitivity.floatValue;
@@ -60,11 +70,19 @@
- (void)onLongPressStart:(NSTimer*)timer {
// Raise the left click and start a right click
- LiSendMouseButtonEvent(BUTTON_ACTION_RELEASE, BUTTON_LEFT);
- LiSendMouseButtonEvent(BUTTON_ACTION_PRESS, BUTTON_RIGHT);
+ if([self touchDidntMoveOnScreen:movingTouchLocation]){
+ if(_delayMouseLeftClick) LiSendMouseButtonEvent(BUTTON_ACTION_RELEASE, BUTTON_LEFT);
+ LiSendMouseButtonEvent(BUTTON_ACTION_PRESS, BUTTON_RIGHT);
+ dispatch_time_t delayShort = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC));
+ dispatch_after(delayShort, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+ LiSendMouseButtonEvent(BUTTON_ACTION_RELEASE, BUTTON_RIGHT);
+ self->rightButtonClicked = true;
+ });
+ }
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
+ rightButtonClicked = false;
CGPoint initialPoint = [[touches anyObject] locationInView:streamView];
if(initialPoint.y < slideGestureVerticalThreshold && (initialPoint.x < _edgeTolerance || initialPoint.x > screenWidthWithThreshold)) {
@@ -82,6 +100,8 @@
UITouch* touch = [touches anyObject];
CGPoint touchLocation = [touch locationInView:streamView];
+ touchBeganTimeStamp = touch.timestamp;
+
// Don't reposition for finger down events within the deadzone. This makes double-clicking easier.
if (touch.timestamp - lastTouchUp.timestamp > DOUBLE_TAP_DEAD_ZONE_DELAY ||
sqrt(pow((touchLocation.x / streamView.bounds.size.width) - (lastTouchUpLocation.x / streamView.bounds.size.width), 2) +
@@ -90,7 +110,7 @@
}
// Press the left button down
- LiSendMouseButtonEvent(BUTTON_ACTION_PRESS, BUTTON_LEFT);
+ if(!_delayMouseLeftClick) LiSendMouseButtonEvent(BUTTON_ACTION_PRESS, BUTTON_LEFT);
// Start the long press timer
longPressTimer = [NSTimer scheduledTimerWithTimeInterval:LONG_PRESS_ACTIVATION_DELAY
@@ -101,6 +121,8 @@
lastTouchDown = touch;
lastTouchDownLocation = touchLocation;
+ movingTouchLocation = touchLocation;
+ touchBeganLocation = touchLocation;
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
@@ -113,16 +135,19 @@
}
UITouch* touch = [touches anyObject];
- CGPoint touchLocation = [touch locationInView:streamView];
+ movingTouchLocation = [touch locationInView:streamView];
- if (sqrt(pow((touchLocation.x / streamView.bounds.size.width) - (lastTouchDownLocation.x / streamView.bounds.size.width), 2) +
- pow((touchLocation.y / streamView.bounds.size.height) - (lastTouchDownLocation.y / streamView.bounds.size.height), 2)) > LONG_PRESS_ACTIVATION_DELTA) {
+ if (sqrt(pow((movingTouchLocation.x / streamView.bounds.size.width) - (lastTouchDownLocation.x / streamView.bounds.size.width), 2) +
+ pow((movingTouchLocation.y / streamView.bounds.size.height) - (lastTouchDownLocation.y / streamView.bounds.size.height), 2)) > LONG_PRESS_ACTIVATION_DELTA) {
// Moved too far since touch down. Cancel the long press timer.
[longPressTimer invalidate];
longPressTimer = nil;
+
+ if(_delayMouseLeftClick && (CACurrentMediaTime()-touchBeganTimeStamp>leftClickTimeThreshold)) LiSendMouseButtonEvent(BUTTON_ACTION_PRESS, BUTTON_LEFT);
+
}
- [streamView updateCursorLocation:[[touches anyObject] locationInView:streamView] isMouse:NO];
+ if(!rightButtonClicked) [streamView updateCursorLocation:[[touches anyObject] locationInView:streamView] isMouse:NO];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
@@ -134,18 +159,32 @@
// Cancel the long press timer
[longPressTimer invalidate];
longPressTimer = nil;
-
- // Left button up on finger up
- LiSendMouseButtonEvent(BUTTON_ACTION_RELEASE, BUTTON_LEFT);
-
- // Raise right button too in case we triggered a long press gesture
- LiSendMouseButtonEvent(BUTTON_ACTION_RELEASE, BUTTON_RIGHT);
// Remember this last touch for touch-down deadzoning
+ UITouch* touch = [touches anyObject];
+ CGPoint touchLocation = [touch locationInView:streamView];
+
+ if(_delayMouseLeftClick){
+ if(CACurrentMediaTime()-touchBeganTimeStampstreamView = view;
self->currentSettings = settings;
+ self->activateCoordSelector = currentSettings.pointerVelocityModeDivider.floatValue != 1.0;
self->moveEventIntervalNSec = (int64_t)(currentSettings.touchMoveEventInterval.intValue * 1000);;
self->streamViewBounds = view.bounds;
@@ -60,9 +60,7 @@
}
self->activePointerIds = [NSMutableSet set];
self->blacklistedTouches = [NSMutableSet set];
-
- _appendMouseLeftClick = settings.appendLeftClick;
-
+
self->asyncNativeTouch = settings.asyncNativeTouchPriority.intValue != AsyncNativeTouchOff;
switch(settings.asyncNativeTouchPriority.intValue){
@@ -197,7 +195,7 @@
//NSLog(@"selecting coords: %d", touch.phase == UITouchPhaseMoved);
// NSLog(@"excluded count: %d", (uint32_t)[excludedPointerIds count]);
- targetCoords = [self selectCoordsFor:touch];
+ targetCoords = activateCoordSelector ? [self selectCoordsFor:touch] : [touch locationInView:streamView];
CGPoint location = [self adjustCoordinatesForVideoArea:targetCoords];
CGSize videoSize = [self getVideoAreaSize];
@@ -217,7 +215,7 @@
// continue to the next loop if current touch is already captured by OSC. works only in regular native touch
if([OnScreenControls.touchAddrsCapturedByOnScreenControls containsObject:@((uintptr_t)touch)]) continue;
[self handleTouchDown:touch]; //generate & populate pointerId
- [self populatePointerObjIntoDict:touch];
+ if(self->activateCoordSelector) [self populatePointerObjIntoDict:touch];
[self sendTouchEvent:touch withTouchtype:LI_TOUCH_EVENT_DOWN];
}
});
@@ -226,7 +224,7 @@
// continue to the next loop if current touch is already captured by OSC. works only in regular native touch
if([OnScreenControls.touchAddrsCapturedByOnScreenControls containsObject:@((uintptr_t)touch)]) continue;
[self handleTouchDown:touch]; //generate & populate pointerId
- [self populatePointerObjIntoDict:touch];
+ if(self->activateCoordSelector) [self populatePointerObjIntoDict:touch];
[self sendTouchEvent:touch withTouchtype:LI_TOUCH_EVENT_DOWN];
}
}
@@ -236,7 +234,7 @@
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, moveEventIntervalNSec), dispatch_get_main_queue(), ^{
for (UITouch* touch in touches){
if([OnScreenControls.touchAddrsCapturedByOnScreenControls containsObject:@((uintptr_t)touch)]) continue;
- [self updatePointerObjInDict:touch];
+ if(self->activateCoordSelector) [self updatePointerObjInDict:touch];
[self sendTouchEvent:touch withTouchtype:LI_TOUCH_EVENT_MOVE];
[[self getPointerObjFromDict:touch] doesNeedResetCoords];
}
@@ -253,11 +251,8 @@
}
[self sendTouchEvent:touch withTouchtype:LI_TOUCH_EVENT_UP]; //send touch event before remove pointerId
[self removePointerId:touch]; //then remove pointerId
-
- if(self->_appendMouseLeftClick && [self touchDidntMoveOnScreen:touch]) [self sendShortMouseLeftButtonClickEvent];
- [self removePointerObjFromDict:touch];
-
- [self->blacklistedTouches removeObject:touchAddrObj];
+ if(self->activateCoordSelector) [self removePointerObjFromDict:touch];
+ [self->blacklistedTouches removeObject:@((uintptr_t)touch)];
}
});
}
@@ -266,6 +261,7 @@
[self touchesEnded:touches withEvent:event];
}
+
- (void)populatePointerObjIntoDict:(UITouch*)touch{
NativeTouchPointer* pointer = [[NativeTouchPointer alloc] initWithTouch:touch];
pointer.useRelativeCoords = pointer.initialPoint.x > pointerVelocityDividerLocationByPoints;
@@ -294,25 +290,4 @@
return pointer.useRelativeCoords ? pointer.latestRelativePoint : pointer.latestPoint;
}
-- (void)sendShortMouseLeftButtonClickEvent{
- dispatch_time_t delayShort = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC));
- dispatch_time_t delayLong = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.03 * NSEC_PER_SEC));
- dispatch_after(delayShort, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
- LiSendMouseButtonEvent(BUTTON_ACTION_PRESS, BUTTON_LEFT);
- dispatch_after(delayLong, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
- LiSendMouseButtonEvent(BUTTON_ACTION_RELEASE, BUTTON_LEFT);
- });
- });
-}
-
-- (bool)touchDidntMoveOnScreen:(UITouch* )touch{
- NativeTouchPointer *pointer = [pointerObjDict objectForKey:@((uintptr_t)touch)];
- return [self isAdjacentPoints:[touch locationInView:streamView] from:pointer.initialPoint tolerance:3];
-}
-
-- (BOOL)isAdjacentPoints:(CGPoint)currentPoint from:(CGPoint)originalPoint tolerance:(CGFloat)tolerance {
- bool isAdjacent = hypotf(originalPoint.x - currentPoint.x, originalPoint.y - currentPoint.y) <= hypot(tolerance, tolerance);
- return isAdjacent;
-}
-
@end
diff --git a/VoidLink/Limelight.xcdatamodeld/VoidLink v1.0.xcdatamodel/contents b/VoidLink/Limelight.xcdatamodeld/VoidLink v1.0.xcdatamodel/contents
index ad6cca75..44ca6b23 100644
--- a/VoidLink/Limelight.xcdatamodeld/VoidLink v1.0.xcdatamodel/contents
+++ b/VoidLink/Limelight.xcdatamodeld/VoidLink v1.0.xcdatamodel/contents
@@ -21,7 +21,6 @@
-
@@ -30,6 +29,7 @@
+
diff --git a/VoidLink/Localization/Localizable.xcstrings b/VoidLink/Localization/Localizable.xcstrings
index 6689dd82..cf55aa8c 100644
--- a/VoidLink/Localization/Localizable.xcstrings
+++ b/VoidLink/Localization/Localizable.xcstrings
@@ -766,35 +766,6 @@
}
}
},
- "appendLeftClickStackTip" : {
- "extractionState" : "manual",
- "localizations" : {
- "en" : {
- "stringUnit" : {
- "state" : "translated",
- "value" : "This works for games like “Old School RuneScape” that requires double tap on touch screen"
- }
- },
- "zh-Hans" : {
- "stringUnit" : {
- "state" : "needs_review",
- "value" : "对需要在触摸屏上双击的游戏, 如 OSRS (Old School RuneScape) 有效"
- }
- },
- "zh-Hant" : {
- "stringUnit" : {
- "state" : "needs_review",
- "value" : "對需要在觸控螢幕上雙擊的遊戲, 如 OSRS(Old School RuneScape)有效"
- }
- },
- "zh-HK" : {
- "stringUnit" : {
- "state" : "needs_review",
- "value" : "對需要在觸控螢幕上雙擊的遊戲, 如 OSRS(Old School RuneScape)有效"
- }
- }
- }
- },
"Applications" : {
"extractionState" : "manual",
"localizations" : {
@@ -1566,6 +1537,35 @@
}
}
},
+ "delayLeftClickStackTip" : {
+ "extractionState" : "manual",
+ "localizations" : {
+ "en" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Optimized for game “Old School RuneScape”."
+ }
+ },
+ "zh-Hans" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "对 OSRS (Old School RuneScape) 有效"
+ }
+ },
+ "zh-Hant" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "對 OSRS(Old School RuneScape)有效"
+ }
+ },
+ "zh-HK" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "對 OSRS(Old School RuneScape)有效"
+ }
+ }
+ }
+ },
"Delete" : {
"extractionState" : "manual",
"localizations" : {
diff --git a/VoidLink/ViewControllers/SettingsViewController.h b/VoidLink/ViewControllers/SettingsViewController.h
index 82f0d841..72acc48c 100644
--- a/VoidLink/ViewControllers/SettingsViewController.h
+++ b/VoidLink/ViewControllers/SettingsViewController.h
@@ -181,8 +181,8 @@
@property (strong, nonatomic) IBOutlet UIStackView *audioEngineStack;
@property (strong, nonatomic) IBOutlet UISegmentedControl *audioEngineSelector;
-@property (strong, nonatomic) IBOutlet UIStackView *appendLeftClickStack;
-@property (strong, nonatomic) IBOutlet UISwitch *appendLeftClickSwitch;
+@property (strong, nonatomic) IBOutlet UIStackView *delayLeftClickStack;
+@property (strong, nonatomic) IBOutlet UISwitch *delayLeftClickSwitch;
@property (strong, nonatomic) IBOutlet UIStackView *duckOtherAppStack;
@property (strong, nonatomic) IBOutlet UISwitch *duckOtherAppSwitch;
diff --git a/VoidLink/ViewControllers/SettingsViewController.m b/VoidLink/ViewControllers/SettingsViewController.m
index 70824094..51917f3a 100644
--- a/VoidLink/ViewControllers/SettingsViewController.m
+++ b/VoidLink/ViewControllers/SettingsViewController.m
@@ -716,9 +716,9 @@ BOOL isCustomResolution(int resolutionSelected) {
[self addSetting:self.pointerVelocityFactorStack ofId:@"pointerVelocityFactorStack" withInfoTag:YES withDynamicLabel:YES to:touchAndControlSection];
[self addSetting:self.mousePointerVelocityStack ofId:@"mousePointerVelocityStack" withInfoTag:NO withDynamicLabel:YES to:touchAndControlSection];
[self addSetting:self.singleTapSensitivityStack ofId:@"singleTapSensitivityStack" withInfoTag:NO withDynamicLabel:YES to:touchAndControlSection];
+ [self addSetting:self.delayLeftClickStack ofId:@"delayLeftClickStack" withInfoTag:YES withDynamicLabel:NO to:touchAndControlSection];
[self addSetting:self.onScreenWidgetStack ofId:@"onScreenWidgetStack" withInfoTag:YES withDynamicLabel:YES to:touchAndControlSection];
[self addSetting:self.buttonVisualFeedbackStack ofId:@"buttonVisualFeedbackStack" withInfoTag:NO withDynamicLabel:NO to:touchAndControlSection];
- [self addSetting:self.appendLeftClickStack ofId:@"appendLeftClickStack" withInfoTag:YES withDynamicLabel:NO to:touchAndControlSection];
[self addSetting:self.swapAbxyStack ofId:@"swapAbaxyStack" withInfoTag:NO withDynamicLabel:NO to:touchAndControlSection];
[self addSetting:self.hapticEngineStack ofId:@"hapticEngineStack" withInfoTag:NO withDynamicLabel:NO to:touchAndControlSection];
[self addSetting:self.emulatedControllerTypeStack ofId:@"emulatedControllerTypeStack" withInfoTag:YES withDynamicLabel:NO to:touchAndControlSection];
@@ -1284,8 +1284,8 @@ BOOL isCustomResolution(int resolutionSelected) {
tipText = [LocalizationHelper localizedStringForKey:@"useBuiltinMicStackTip"];
showOnlineDocAction = false;
}
- if([sender.superview.accessibilityIdentifier isEqualToString: @"appendLeftClickStack"]){
- tipText = [LocalizationHelper localizedStringForKey:@"appendLeftClickStackTip"];
+ if([sender.superview.accessibilityIdentifier isEqualToString: @"delayLeftClickStack"]){
+ tipText = [LocalizationHelper localizedStringForKey:@"delayLeftClickStackTip"];
showOnlineDocAction = false;
}
@@ -1680,7 +1680,7 @@ BOOL isCustomResolution(int resolutionSelected) {
[self.multiControllerSwitch setOn:self->tempSettings.multiController];
[self.swapAbxySwitch setOn:self->tempSettings.swapABXYButtons];
[self.buttonVisualFeedbackSwitch setOn:self->tempSettings.buttonVisualFeedback];
- [self.appendLeftClickSwitch setOn:self->tempSettings.appendLeftClick];
+ [self.delayLeftClickSwitch setOn:self->tempSettings.delayLeftClick];
[self.hapticEngineSelector setSelectedSegmentIndex:self->tempSettings.hapticEngine.intValue];
bool hideHapticEngineStack = false;
@@ -2333,12 +2333,11 @@ BOOL isCustomResolution(int resolutionSelected) {
[self setHidden:!isNativeTouch forStack:self.pointerVelocityDividerStack];
[self setHidden:!isNativeTouch forStack:self.pointerVelocityFactorStack];
- [self setHidden:!(sender.selectedSegmentIndex == RelativeTouch) forStack:self.mousePointerVelocityStack];
- [self setHidden:!(sender.selectedSegmentIndex == RelativeTouch) forStack:self.singleTapSensitivityStack];
+ [self setHidden:sender.selectedSegmentIndex!=RelativeTouch forStack:self.mousePointerVelocityStack];
+ [self setHidden:sender.selectedSegmentIndex!=RelativeTouch forStack:self.singleTapSensitivityStack];
[self setHidden:![self isNotNativeTouchOnly] forStack:self.onScreenWidgetStack];
[self setHidden:![self isNotNativeTouchOnly] forStack:self.buttonVisualFeedbackStack];
- [self setHidden:!(([self isNotNativeTouchOnly] && sender.selectedSegmentIndex == NativeTouch)
- || sender.selectedSegmentIndex == AbsoluteTouch) forStack:self.appendLeftClickStack];
+ [self setHidden:sender.selectedSegmentIndex!=AbsoluteTouch forStack:self.delayLeftClickStack];
[self handleOswGestureChange];
}
@@ -2411,7 +2410,6 @@ BOOL isCustomResolution(int resolutionSelected) {
- (void)enableOswForNativeTouchSwitchFlipped:(UISwitch *)sender{
[self setHidden:!sender.isOn forStack:self.onScreenWidgetStack];
[self setHidden:!sender.isOn forStack:self.buttonVisualFeedbackStack];
- [self setHidden:!sender.isOn forStack:self.appendLeftClickStack];
[self handleOswGestureChange];
}
@@ -2881,7 +2879,7 @@ BOOL isCustomResolution(int resolutionSelected) {
NSInteger hapticEngine = self.hapticEngineSelector.selectedSegmentIndex;
CGFloat edgeSlidingSensitivity = self.edgeSlidingSensitivitySlider.value;
NSInteger audioEngine = self.audioEngineSelector.selectedSegmentIndex;
- BOOL appendLeftClick = self.appendLeftClickSwitch.isOn;
+ BOOL delayLeftClick = self.delayLeftClickSwitch.isOn;
BOOL duckOtherApps = self.duckOtherAppSwitch.isOn;
BOOL muteInBackground = self.muteInBackgroundSwitch.isOn;
NSInteger backgroundSessionTimer = self.backgroundSessionTimerSlider.value == self.backgroundSessionTimerSlider.maximumValue ? (uint32_t) INT16_MAX : (uint32_t)self.backgroundSessionTimerSlider.value;
@@ -2939,7 +2937,7 @@ BOOL isCustomResolution(int resolutionSelected) {
hapticEngine:hapticEngine
edgeSlidingSensitivity:edgeSlidingSensitivity
audioEngine:audioEngine
- appendLeftClick:appendLeftClick
+ delayLeftClick:delayLeftClick
duckOtherApps:duckOtherApps
muteInBackground:muteInBackground
backgroundSessionTimer:backgroundSessionTimer];
diff --git a/VoidLink/mul.lproj/iPad.xcstrings b/VoidLink/mul.lproj/iPad.xcstrings
index 72a90a02..7143308f 100644
--- a/VoidLink/mul.lproj/iPad.xcstrings
+++ b/VoidLink/mul.lproj/iPad.xcstrings
@@ -560,31 +560,31 @@
}
},
"9Yx-H8-E3N.text" : {
- "comment" : "Class = \"UILabel\"; text = \"Additional Left Click\"; ObjectID = \"9Yx-H8-E3N\";",
+ "comment" : "Class = \"UILabel\"; text = \"Delay Left Click\"; ObjectID = \"9Yx-H8-E3N\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
- "value" : "Additional Left Click"
+ "value" : "Delay Left Click"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "needs_review",
- "value" : "追加鼠标左单击"
+ "value" : "延迟鼠标左单击"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "needs_review",
- "value" : "追加滑鼠左單擊"
+ "value" : "延遲滑鼠左單擊"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "needs_review",
- "value" : "追加滑鼠左單擊"
+ "value" : "延遲滑鼠左單擊"
}
}
}
diff --git a/VoidLink/mul.lproj/iPhone.xcstrings b/VoidLink/mul.lproj/iPhone.xcstrings
index 4b3cc398..2bd090b6 100644
--- a/VoidLink/mul.lproj/iPhone.xcstrings
+++ b/VoidLink/mul.lproj/iPhone.xcstrings
@@ -3542,31 +3542,31 @@
}
},
"qOa-te-sPj.text" : {
- "comment" : "Class = \"UILabel\"; text = \"Additional Left Click\"; ObjectID = \"qOa-te-sPj\";",
+ "comment" : "Class = \"UILabel\"; text = \"Delay Left Click\"; ObjectID = \"qOa-te-sPj\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
- "value" : "Additional Left Click"
+ "value" : "Delay Left Click"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "needs_review",
- "value" : "追加鼠标左单击"
+ "value" : "延迟鼠标左单击"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "needs_review",
- "value" : "追加滑鼠左單擊"
+ "value" : "延遲滑鼠左單擊"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "needs_review",
- "value" : "追加滑鼠左單擊"
+ "value" : "延遲滑鼠左單擊"
}
}
}