This patch proposes to change the behavior of 4 snapping combinations:
1. Snap edge element to constraint plane:
The snap is made at the intersection between the edge direction and the constraint plane.
2. Snap face element to constraint plane:
The snap is made to the nearest point between the view ray and the line that intersects the face plane with the constraint plane.
3. Snap constraint axis to edge element:
The snap is made to the nearest point on the element line to the ray of the axis.
4. Snap constraint axis to face element:
The snap is made at the intersection of the axis line and the face plane.
To avoid unpredictable jumps outside view boundaries, an alignment check is made for each of these snapping combinations.