improve horizontal snapping