Skip to content

Commit c8acd6e

Browse files
committed
Touch: Fix tap detection for P8b variant
1 parent 167950a commit c8acd6e

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/touchhandler/TouchHandler.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@ bool TouchHandler::ProcessTouchInfo(Drivers::Cst816S::TouchInfos info) {
6363
#elif defined(DRIVER_TOUCH_GESTURE)
6464
if (info.gesture != Pinetime::Drivers::Cst816S::Gestures::None) {
6565
gesture = ConvertGesture(info.gesture);
66+
// A new variant configuration behaves in a way such that it generates a gesture event at the start of a physical gesture,
67+
// but does not set the info.touching flag at all. Since gestures are handled separately, special behaviour is only needed
68+
// for the tap event. For the original P8b, which always sets info.touching = true, this operation is idempotent.
69+
if (gesture == TouchEvents::Tap) {
70+
info.touching = true;
71+
}
6672
}
6773
#elif defined(DRIVER_TOUCH_DYNAMIC)
6874
if (info.gesture != Pinetime::Drivers::Cst816S::Gestures::None) {

0 commit comments

Comments
 (0)