path operations and node editing cause node types to change inappropriately
Migrated from: https://bugs.launchpad.net/inkscape/+bug/1449815
Steps to reproduce:
- open attached node-edit-bug.svg with 1.0 beta2
- Select the black design with the Node tool and inspect the nodes.
- Add the blue rectangle to the selection.
- Path menu > Difference.
What happened?
Notice the nodes in the small blue circles, which is entirely outside the area where the path operation happened, changed from smooth nodes to cusp nodes.
Steps to reproduce Part 2:
- Select the 2 nodes in the small pink rectangle.
- Break the path between selected nodes.
- Without deselecting, do Join nodes.
Notice that at this point, no changes in any nodes are evident yet, except those 2 that were joined.
- Deselect everything
- Reselect the black object with the Node tool.
What happened? Part 2:
You can see that the nodes in the small pink circles have now changed - some from smooth to cusp and some from cusp to smooth. And several other nodes are changed as well, I just don't have time to circle all of them. In particular, notice that the nodes that were changed by the first Difference operation, in the blue circles, have now been changed back to smooth, and the smooth nodes beside them are now changed to cusp.
What should have happened?
Nodes that are not directly affected by a path operation or by any other node editing (such as breaking a path or joining nodes) should not change. In a design like this, I purposely made certain nodes smooth and certain nodes cusp, for obvious reasons. If I do a little work here and there, I don't mind having to fix the nodes in those areas where I do a little work. But it's not right to have to go through the entire design and fix the node types that were changed, when there was no reason for them to have changed.
Inkscape Version and Operating System:
- Inkscape Version: 1.0beta2 (1c3732b5, 2019-12-09)
- Operating System: Windows 7 Pro, 64-bit
Example file:
Of course, I will never be an Inkscape expert. But to my simplistic understanding, this seemingly indescriminate changing of node types, in areas that are unaffected by path operations or other node editing, seems unnecessary. Users set the node types on purpose, for specific reasons. And having set them, they don't expect them to change, unless they change them themselves.
I suppose it's to Inkscape's credit that changing the node types does not usually change the paths (at least not obviously). But Inkscape has no idea what its user has in mind to do next. Having changed these nodes outside the area where work was happening could affect what the user wants to do next. So the user often has to go through and fix all the nodes, even though the path was not changed.
Thanks for listening!