Add more documentation.
Reposition cursor if outside the interface's current geometry.
More protective with respects to negative numbers.