nsEventStatus AsyncPanZoomController::OnTouchStart(const MultiTouchInput& aEvent) { SingleTouchData& touch = GetFirstSingleTouch(aEvent); nsIntPoint point = touch.mScreenPoint; PRInt32 xPos = point.x, yPos = point.y; switch (mState) { case FLING: CancelAnimation(); // Fall through. case NOTHING: mX.StartTouch(xPos); mY.StartTouch(yPos); mState = TOUCHING; break; case TOUCHING: case PANNING: case PINCHING: NS_WARNING("Received impossible touch in OnTouchStart"); break; default: NS_WARNING("Unhandled case in OnTouchStart"); break; } return nsEventStatus_eConsumeNoDefault; }
nsEventStatus AsyncPanZoomController::OnTouchStart(const MultiTouchEvent& event) { SingleTouchData& touch = GetTouchFromEvent(event); nsIntPoint point = touch.mScreenPoint; PRInt32 xPos = point.x, yPos = point.y; switch (mState) { case ANIMATED_ZOOM: { // We just interrupted a double-tap animation, so force a redraw in case // this touchstart is just a tap that doesn't end up triggering a redraw. ReentrantMonitorAutoEnter monitor(mReentrantMonitor); ForceRepaint(); SendViewportChange(); } // Fall through. case FLING: case BOUNCE: CancelAnimation(); // Fall through. case NOTHING: case WAITING_LISTENERS: mX.StartTouch(xPos); mY.StartTouch(yPos); mState = TOUCHING; break; case TOUCHING: case PANNING: case PANNING_LOCKED: case PANNING_HOLD: case PANNING_HOLD_LOCKED: case PINCHING: NS_WARNING("Received impossible touch in OnTouchStart"); break; default: NS_WARNING("Unhandled case in OnTouchStart"); break; } return nsEventStatus_eConsumeNoDefault; }