TouchBlockState* InputQueue::StartNewTouchBlock(const RefPtr<AsyncPanZoomController>& aTarget, bool aTargetConfirmed, bool aCopyPropertiesFromCurrent) { TouchBlockState* newBlock = new TouchBlockState(aTarget, aTargetConfirmed, mTouchCounter); if (aCopyPropertiesFromCurrent) { newBlock->CopyPropertiesFrom(*CurrentTouchBlock()); } SweepDepletedBlocks(); // Add the new block to the queue. mInputBlockQueue.AppendElement(newBlock); return newBlock; }
TouchBlockState* InputQueue::StartNewTouchBlock(const RefPtr<AsyncPanZoomController>& aTarget, bool aTargetConfirmed, bool aCopyPropertiesFromCurrent) { TouchBlockState* newBlock = new TouchBlockState(aTarget, aTargetConfirmed, mTouchCounter); if (aCopyPropertiesFromCurrent) { // We should never enter here without a current touch block, because this // codepath is invoked from the OnLongPress handler in // AsyncPanZoomController, which should bail out if there is no current // touch block. MOZ_ASSERT(GetCurrentTouchBlock()); newBlock->CopyPropertiesFrom(*GetCurrentTouchBlock()); } mActiveTouchBlock = newBlock; return newBlock; }