mTapsRegistered(0),
mTouchPosition(),
mTouchTime(0u),
- mLastTapTime(0u)
+ mLastTapTime(0u),
+ mGestureSourceType(GestureSourceType::INVALID)
{
}
const Integration::Point& point = event.points[0];
PointState::Type pointState = point.GetState();
+ MouseButton::Type mouseButton = point.GetMouseButton();
+ switch(mouseButton)
+ {
+ case MouseButton::INVALID:
+ {
+ mGestureSourceType = GestureSourceType::INVALID;
+ break;
+ }
+ case MouseButton::PRIMARY:
+ {
+ mGestureSourceType = GestureSourceType::PRIMARY;
+ break;
+ }
+ case MouseButton::SECONDARY:
+ {
+ mGestureSourceType = GestureSourceType::SECONDARY;
+ break;
+ }
+ case MouseButton::TERTIARY:
+ {
+ mGestureSourceType = GestureSourceType::TERTIARY;
+ break;
+ }
+ default:
+ {
+ mGestureSourceType = GestureSourceType::INVALID;
+ break;
+ }
+ }
+
switch(mState)
{
case CLEAR:
mLastTapTime = 0u;
mTapsRegistered = 0;
mState = TOUCHED;
+
EmitPossibleState(event);
}
void TapGestureRecognizer::EmitPossibleState(const Integration::TouchEvent& event)
{
TapGestureEvent tapEvent(GestureState::POSSIBLE);
- tapEvent.point = mTouchPosition;
- tapEvent.time = event.time;
+ tapEvent.point = mTouchPosition;
+ tapEvent.time = event.time;
+ tapEvent.gestureSourceType = mGestureSourceType;
ProcessEvent(tapEvent);
}
void TapGestureRecognizer::EmitTap(uint32_t time, TapGestureEvent& event)
{
- event.numberOfTaps = mTapsRegistered;
- event.point = mTouchPosition;
- event.time = time;
+ event.numberOfTaps = mTapsRegistered;
+ event.point = mTouchPosition;
+ event.time = time;
+ event.gestureSourceType = mGestureSourceType;
ProcessEvent(event);
}