From c4c896e43eb93e505293c8526283d307ffff3bd3 Mon Sep 17 00:00:00 2001 From: True Zhuanjia Date: Thu, 9 Apr 2026 11:48:35 +0800 Subject: [PATCH] live gamepad overlay tip fix --- VoidLink/Input/AbstractGamepadOverlayWidgetView.swift | 11 +++++++++++ VoidLink/Utility/GenericUtils.swift | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/VoidLink/Input/AbstractGamepadOverlayWidgetView.swift b/VoidLink/Input/AbstractGamepadOverlayWidgetView.swift index 6ca95847..36fc5430 100644 --- a/VoidLink/Input/AbstractGamepadOverlayWidgetView.swift +++ b/VoidLink/Input/AbstractGamepadOverlayWidgetView.swift @@ -203,6 +203,9 @@ final class AbstractGamepadOverlayView: UIView { private func installGesturesIfNeeded() { guard gestureRecognizers?.isEmpty != false else { return } + let singleTap = UITapGestureRecognizer(target: self, action: #selector(handleSingleTap(_:))) + singleTap.numberOfTapsRequired = 1 + singleTap.cancelsTouchesInView = true let pan = UIPanGestureRecognizer(target: self, action: #selector(handlePan(_:))) pan.minimumNumberOfTouches = 1 pan.maximumNumberOfTouches = 1 @@ -212,15 +215,23 @@ final class AbstractGamepadOverlayView: UIView { let doubleTap = UITapGestureRecognizer(target: self, action: #selector(handleDoubleTap(_:))) doubleTap.numberOfTapsRequired = 2 doubleTap.cancelsTouchesInView = true + singleTap.delegate = self pan.delegate = self pinch.delegate = self doubleTap.delegate = self pan.require(toFail: doubleTap) + singleTap.require(toFail: pan) addGestureRecognizer(pan) + addGestureRecognizer(singleTap) addGestureRecognizer(pinch) addGestureRecognizer(doubleTap) } + @objc private func handleSingleTap(_ recognizer: UITapGestureRecognizer) { + guard recognizer.state == .ended else { return } + presentFirstTouchTipIfNeeded() + } + @objc private func handlePan(_ recognizer: UIPanGestureRecognizer) { guard let superview else { return } switch recognizer.state { diff --git a/VoidLink/Utility/GenericUtils.swift b/VoidLink/Utility/GenericUtils.swift index 7d19a6e6..5804fd38 100644 --- a/VoidLink/Utility/GenericUtils.swift +++ b/VoidLink/Utility/GenericUtils.swift @@ -43,7 +43,7 @@ import Foundation } @objc static func isFirstLaunchGamepadOverlayFeature() -> Bool { - let key = "hasTouchedGamepadOverlayFeature20260405-1" + let key = "hasTouchedGamepadOverlayFeature20260405-2" let defaults = UserDefaults.standard let launchedBefore = defaults.bool(forKey: key)