From c8604330654d6b9bbbc1647c1e71e4154c36ee37 Mon Sep 17 00:00:00 2001 From: TrueZhuangjia Date: Tue, 1 Apr 2025 22:22:52 +0800 Subject: [PATCH] relative touch rollback --- Limelight/Input/RelativeTouchHandler.m | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/Limelight/Input/RelativeTouchHandler.m b/Limelight/Input/RelativeTouchHandler.m index f55eb420..1de32f6b 100644 --- a/Limelight/Input/RelativeTouchHandler.m +++ b/Limelight/Input/RelativeTouchHandler.m @@ -70,8 +70,6 @@ static const float QUICK_TAP_TIME_INTERVAL = 0.2; screenWidthWithThreshold = CGRectGetWidth([[UIScreen mainScreen] bounds]) - EDGE_TOLERANCE; self->touchPointSpawnedAtUpperScreenEdge = false; - [self setupDisplayLink]; - #if TARGET_OS_TV remotePressRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(remoteButtonPressed:)]; remotePressRecognizer.allowedPressTypes = @[@(UIPressTypeSelect)]; @@ -86,22 +84,6 @@ static const float QUICK_TAP_TIME_INTERVAL = 0.2; return self; } -- (void)setupDisplayLink { - __weak typeof(self) weakSelf = self; - self.displayLink = [CADisplayLink displayLinkWithTarget:weakSelf selector:@selector(handleDisplayLink:)]; - [self.displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes]; - self.displayLink.paused = YES; -} - -- (void)handleDisplayLink:(CADisplayLink *)sender { - - if(!mousePointerMoved && touchLockedForMouseMove != nil){ - [self sendMouseMoveEvent:touchLockedForMouseMove]; - NSLog(@"stationary mouse event, %f", CACurrentMediaTime()); - } - mousePointerMoved = false; -} - - (bool)isOnScreenControllerBeingPressed:(NSSet* )touches{ for(UITouch* touch in touches){ if([OnScreenControls.touchAddrsCapturedByOnScreenControls containsObject:@((uintptr_t)touch)]) return true; @@ -198,7 +180,6 @@ static const float QUICK_TAP_TIME_INTERVAL = 0.2; // we must use [event allTouches] to check if touchLockedForMouseMove is captured, because the UITouch object could be captured by upper layer of UIView(in cases like tap gestures), not passed to the touches callbacks in this class, but still available in [event allTouches] if(candidateTouch != nil && ![[event allTouches] containsObject:touchLockedForMouseMove]){ - self.displayLink.paused = NO; touchLockedForMouseMove = candidateTouch; NSLog(@"Candidate touch for mouse movement locked"); mousePointerTimestamp = CACurrentMediaTime(); @@ -251,13 +232,11 @@ static const float QUICK_TAP_TIME_INTERVAL = 0.2; } touchLockedForMouseMove = nil; mousePointerMoved = false; - self.displayLink.paused = YES; } if([[event allTouches] count] == [touches count]){ isInMouseWheelScrollingMode = false; touchLockedForMouseMove = nil; - self.displayLink.paused = YES; mousePointerMoved = false; // need to reset this anyway [self resetAllPressedFlagsForOnScreenWidgetViews]; // reset all pressed flag for on-screen widget views after all fingers lifted from screen. touchPointSpawnedAtUpperScreenEdge = false;