fix #41906: make screenshot mode rectangle appear within current view

When enabling screenshot mode, center rectangle in current view unless previous rectangle exists and would be within view.

I'm totally comfortable with the logic here.  What I don't know is if there is better way of obtaining the rectangle corresponding to the current view.  See my line comment.

Somehow this seems way more complex than it should be.  There is not a simple "currentRect()" function to return the current view in canvas coordinates?