From aa1c6f7c6b3427758f81ca2161cb5433eae4e1f2 Mon Sep 17 00:00:00 2001 From: Jack Saunders Date: Sun, 13 Aug 2023 15:34:45 +0100 Subject: [PATCH] Prevent scroll events during trackpad three finger swipe --- jitouch/Jitouch/Gesture.m | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/jitouch/Jitouch/Gesture.m b/jitouch/Jitouch/Gesture.m index e572346..190a06e 100644 --- a/jitouch/Jitouch/Gesture.m +++ b/jitouch/Jitouch/Gesture.m @@ -125,7 +125,7 @@ @implementation Gesture static int quickTabSwitching; -static int middleClickFlag, magicMouseThreeFingerFlag; +static int middleClickFlag, magicMouseThreeFingerFlag, trackpadThreeFingerFlag; static int trackpadNFingers, trackpadClicked; static int autoScrollFlag; static int moveResizeFlag, shouldExitMoveResize; @@ -218,6 +218,7 @@ static bool familyIsMagicTrackpad(int familyID) { } static void turnOffTrackpad() { + trackpadThreeFingerFlag = 0; trackpadNFingers = 0; } @@ -2126,6 +2127,8 @@ static int trackpadCallback(MTDeviceRef device, Finger *data, int nFingers, doub if (!gestureTrackpadMoveResize(data, nFingers, timestamp)) { if (!isTrackpadRecognizing) { + trackpadThreeFingerFlag = (nFingers == 3); + gestureTrackpadAutoScroll(data, nFingers, timestamp); gestureTrackpadOneFixOneTap(data, nFingers, timestamp); @@ -3032,7 +3035,7 @@ static CGEventRef CGEventCallback(CGEventTapProxy proxy, CGEventType type, CGEve } } else if (type == kCGEventScrollWheel) { - if (magicMouseThreeFingerFlag || isTrackpadRecognizing) + if (trackpadThreeFingerFlag || magicMouseThreeFingerFlag || isTrackpadRecognizing) return NULL; else if (autoScrollFlag) { int64_t sc = CGEventGetIntegerValueField(event, kCGScrollWheelEventDeltaAxis1);