void Scroll(Touch touch) { if (_childObjects == null || _childObjects.Count == 0) { return; } // Works better when divided by 2. Don't know why :) double movement = touch.MovementOnScreen.Y / 2; if (lastMoves.Count >= MaxMoves) { lastMoves.Dequeue(); } lastMoves.Enqueue(movement); velocity = lastMoves.Average(); List <GameObject> widgets = _childObjects.FindAll(o => o is Widget); _layout.Scroll(widgets, movement); }