libgtkcanvas icon indicating copy to clipboard operation
libgtkcanvas copied to clipboard

Add angle-snapping when rotating

Open aleksandar-stefanovic opened this issue 7 years ago • 2 comments

I've implemented that like this:

If the object is rotated, by dragging the node, by a rotation amount (in degrees, for this example), then the actual rotation would be equal to:

rotation - rotation % 15

For example, if the input rotation is 67°, then the applied rotation would be 67 - 67 % 15 = 67 - 7 = 60.

And that works fine. However, this isn't the default behavior in 99% of the software I've used, but rather, it's freehand rotation, until you press a key (most likely Ctrl), and then the snapping is applied. And currently I don't know how to detect whether Ctrl is pressed or not, so I can't finish this feature on my own (if I figure it out, I will send in a PR).

aleksandar-stefanovic avatar Jan 14 '18 20:01 aleksandar-stefanovic

The move action has a way to detect the modifier keys https://github.com/Philip-Scott/libgtkcanvas/blob/master/src/Utils/MoveAction.vala#L40

But I would wait a bit before trying to implement this here for now. A big re-write is in the way to implement the drawing of the shapes using SVGs (see #20)

But thank you for your work anyways :) really appreciate you taking your time to make this and Spice-Up better!

Philip-Scott avatar Jan 14 '18 21:01 Philip-Scott

No problem, I will wait until #20 is merged, and then I will work on this 🙂

aleksandar-stefanovic avatar Jan 15 '18 00:01 aleksandar-stefanovic