On Mon, Mar 20, 2017 at 10:19 PM, Tavmjong Bah <tavmjong@...8...> wrote:

Hi,

I've been reworking Jabier's window rotation code to use the desktop to
window affine rather than messing with the SVG viewbox. This is to keep
the GUI code out of the SVG handling code (also viewbox doesn't have
the concept of rotation so it was a real hack to put it in there). This
also unifies how zoom and rotation are handled (and eventually could
include flip).

With trunk r15603 most of the work is done so I would like to ask that
people try it out.

Hi, Tav. Thanks for you work on making this behave correctly on code level.
 
There are currently two ways to rotate the canvas.

1. Use the rotate spin entry box at the lower right corner of the
screen to input an arbitrary rotation value (right click to open a pop-
up with preset values). In this case, the rotation is around the center
of the window.

So far so good.
 
2. Use Shift-Ctrl-Scroll wheel to rotate around the current cursor
position. Currently the rotation is set to be in increments of 2
degrees. (We can make this a user defined preference.)

Can we bring Jabier's on-screen controls? I really liked that widget. It was fast to choose desired rotation angle that way. I liked how it brought "speed" to Inkscape. We need such clever GUI decisions since everything already feels too slow. The new method with complex drawing is something I'd never use. Even worse, we have made shortcuts work perfectly for every workflow. Even with a tablet it was a breeze to rotate canvas without finger acrobatics. Just to remind you how it used to work:

Following logic behind panning (using middle mouse button - MMB), Jabier added _entering_ rotation mode by clicking CTRL+MMB. CTRL was also used to constraint rotation to a angle value defined in preferences. It is the same value used for every rotation in Inkscape. If user releases CTRL while still holding MMB down, snapping of rotation values was "lost", which is consistent with how rotation tool in general works.Pressing CTRL with MMB still down brings back rotation angle snapping. Another one added was SHIFT. With SHIFT keyboard button pressed down, rotation angle was brought back to 0 degrees, practically resetting rotation, no matter where user is currently.

I think that implemented this way, the tool would be way more useful, with extended meaning to general UX, since it brings speed of preview (everyone loves it!) and speed of acting in general. One can go to 180 degrees angle in a 1/10 of a second. Right now I have to wait seconds until my complex drawing appears and/or constantly looking at status bar to read exact value of rotation at which I am currently.

Please consider bringing back some part of previous implementation. Especially GUI part, which was one of the most polished canvas interactions Inkscape used to have.


Note, this is a work in progress. Axiometric grids are not handled
correctly and resize/skew/rotate handles are not rotated with the
canvas.

Work is being tracked at http://wiki.inkscape.org/wiki/index.php/Rotati
ng_Canvas

Sorry there is no video. I don't have the video creating skill Jabier
has...

It would be interesting to know how people use a rotated canvas. Is it
with a separate tablet (e.g. Wacom) or with a touch sensitive screen?
Yale Zhang has a branch with gestures support. It would be interesting
to get this into trunk but it looks like it needs a good review.

As a reminder, Yale Zhang has done some more improvements, namely multi-threaded rendering and vectorized Gaussian Blur filter which work fantastically. It is many times faster then current Inkscape trunk on high-end computers.

Vlada
 

Tav