Skip to content

Commit a72436f

Browse files
FIX: Zoom gesture is no longer be interrupted by additional touches
1 parent 1888ed1 commit a72436f

File tree

1 file changed

+50
-47
lines changed

1 file changed

+50
-47
lines changed

src/omicron/omicron/TouchGestureManager.cpp

Lines changed: 50 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ void TouchGroup::generateGestures(){
427427

428428
gestureManager->generateZoomEvent(Event::Down, centerTouch, 0);
429429
ofmsg("TouchGroup ID: %1% zoom start", %ID);
430-
} else if( touchList.size() != 2 && zoomGestureTriggered ){
430+
} else if( touchList.size() < 2 && zoomGestureTriggered ){
431431
zoomGestureTriggered = false;
432432

433433
gestureManager->generateZoomEvent(Event::Up, centerTouch, 0);
@@ -447,56 +447,59 @@ void TouchGroup::generateGestures(){
447447
ofmsg("TouchGroup ID: %1% zoom delta: %2%", %ID %zoomDelta);
448448
}
449449
}
450+
else
451+
{
450452

451-
// 5-finger gesture
452-
if( touchList.size() == 5 && idleTouchList.size() > 3 && !fiveFingerGestureTriggered )
453-
{
454-
gestureManager->generatePQServiceEvent( Event::Down, centerTouch, GESTURE_FIVE_FINGER_HOLD );
455-
fiveFingerGestureTriggered = true;
456-
457-
ofmsg("TouchGroup ID: %1% 5-finger gesture triggered", %ID);
458-
if( groupHandedness == LEFT )
459-
omsg(" - Left-hand detected");
460-
else if( groupHandedness == RIGHT )
461-
omsg(" - Right-hand detected");
462-
}
463-
else if( touchList.size() == 5 && idleTouchList.size() > 3 && fiveFingerGestureTriggered )
464-
{
465-
gestureManager->generatePQServiceEvent( Event::Move, centerTouch, GESTURE_FIVE_FINGER_HOLD );
466-
//ofmsg("TouchGroup ID: %1% 5-finger gesture hold", %ID);
467-
}
468-
else if( touchList.size() != 5 && fiveFingerGestureTriggered )
469-
{
470-
gestureManager->generatePQServiceEvent( Event::Up, centerTouch, GESTURE_FIVE_FINGER_HOLD );
471-
fiveFingerGestureTriggered = false;
453+
// 5-finger gesture
454+
if (touchList.size() == 5 && idleTouchList.size() > 3 && !fiveFingerGestureTriggered)
455+
{
456+
gestureManager->generatePQServiceEvent(Event::Down, centerTouch, GESTURE_FIVE_FINGER_HOLD);
457+
fiveFingerGestureTriggered = true;
458+
459+
ofmsg("TouchGroup ID: %1% 5-finger gesture triggered", %ID);
460+
if (groupHandedness == LEFT)
461+
omsg(" - Left-hand detected");
462+
else if (groupHandedness == RIGHT)
463+
omsg(" - Right-hand detected");
464+
}
465+
else if (touchList.size() == 5 && idleTouchList.size() > 3 && fiveFingerGestureTriggered)
466+
{
467+
gestureManager->generatePQServiceEvent(Event::Move, centerTouch, GESTURE_FIVE_FINGER_HOLD);
468+
//ofmsg("TouchGroup ID: %1% 5-finger gesture hold", %ID);
469+
}
470+
else if (touchList.size() != 5 && fiveFingerGestureTriggered)
471+
{
472+
gestureManager->generatePQServiceEvent(Event::Up, centerTouch, GESTURE_FIVE_FINGER_HOLD);
473+
fiveFingerGestureTriggered = false;
472474

473-
ofmsg("TouchGroup ID: %1% 5-finger gesture ended", %ID);
474-
}
475+
ofmsg("TouchGroup ID: %1% 5-finger gesture ended", %ID);
476+
}
475477

476-
// 3-finger gesture
477-
if( touchList.size() == 3 && idleTouchList.size() > 2 && !threeFingerGestureTriggered )
478-
{
479-
gestureManager->generatePQServiceEvent( Event::Down, centerTouch, GESTURE_THREE_FINGER_HOLD );
480-
threeFingerGestureTriggered = true;
481-
482-
ofmsg("TouchGroup ID: %1% 3-finger gesture triggered", %ID);
483-
if( groupHandedness == LEFT )
484-
omsg(" - Left-hand detected");
485-
else if( groupHandedness == RIGHT )
486-
omsg(" - Right-hand detected");
487-
}
488-
else if( touchList.size() == 3 && idleTouchList.size() > 2 && threeFingerGestureTriggered )
489-
{
490-
gestureManager->generatePQServiceEvent( Event::Move, centerTouch, GESTURE_THREE_FINGER_HOLD );
491-
//ofmsg("TouchGroup ID: %1% 5-finger gesture hold", %ID);
492-
}
493-
else if( touchList.size() != 3 && threeFingerGestureTriggered )
494-
{
495-
gestureManager->generatePQServiceEvent( Event::Up, centerTouch, GESTURE_THREE_FINGER_HOLD );
496-
threeFingerGestureTriggered = false;
478+
// 3-finger gesture
479+
if (touchList.size() == 3 && idleTouchList.size() > 2 && !threeFingerGestureTriggered)
480+
{
481+
gestureManager->generatePQServiceEvent(Event::Down, centerTouch, GESTURE_THREE_FINGER_HOLD);
482+
threeFingerGestureTriggered = true;
483+
484+
ofmsg("TouchGroup ID: %1% 3-finger gesture triggered", %ID);
485+
if (groupHandedness == LEFT)
486+
omsg(" - Left-hand detected");
487+
else if (groupHandedness == RIGHT)
488+
omsg(" - Right-hand detected");
489+
}
490+
else if (touchList.size() == 3 && idleTouchList.size() > 2 && threeFingerGestureTriggered)
491+
{
492+
gestureManager->generatePQServiceEvent(Event::Move, centerTouch, GESTURE_THREE_FINGER_HOLD);
493+
//ofmsg("TouchGroup ID: %1% 5-finger gesture hold", %ID);
494+
}
495+
else if (touchList.size() != 3 && threeFingerGestureTriggered)
496+
{
497+
gestureManager->generatePQServiceEvent(Event::Up, centerTouch, GESTURE_THREE_FINGER_HOLD);
498+
threeFingerGestureTriggered = false;
497499

498-
ofmsg("TouchGroup ID: %1% 3-finger gesture ended", %ID);
499-
}
500+
ofmsg("TouchGroup ID: %1% 3-finger gesture ended", %ID);
501+
}
502+
}
500503
}
501504

502505

0 commit comments

Comments
 (0)