These added lines are not correct:
In case user drags over with both X and Y co-ordinates different at source and destination, you end up with TWO touch gestures being detected. Eg. If you start at (10 , 10) and end at (70 , 80) you get the TWO gestures, LEFT_TO_RIGHT and UP_TO_DOWN as against ideally you must get only one gesture.
By using flags, the actual gesture management implementation can detect and manage also diagonal gestures, where both a vertical and a horizontal movement are detected. This does not force the actual implementation to manage both of them, but already give the support for it.
--Jappit 15:38, 10 March 2009 (EET)
Also these lines are not exact:
The touch gesture detection is based on the assumption that when user drags from right to left or vice versa, the Y co-ordinate is going to be the same, but actually if you use your finger you may end with some different Y value which is slightly less/more than source Y. But even as an end user you want to treat it as ‘LEFT_TO_RIGHT’ interaction. The same is true in case of Up and Down detection.
The first proposed approach already manages cases where there are slight modifications of the horizontal coordinate in a vertical movement, and of the vertical coordinate in a horizontal one.
--Jappit 15:38, 10 March 2009 (EET)