Krzysztof,
I finally found time to test the new node tool. Overall it feels great, but of course I found many small and not so small things to fix :) #1 is my personal pet peeve, if you can't see it please just give me pointers to the code which passes events up and I'll have a look myself.
I'll probably have more as I do more testing, but here's the fist batch:
1. Bug: Middle-button dragging and Shift-middle button zoom rubberband still do not work. Are you using a mouse with a middle button to test? They work in Selector but not in Node.
2. Lost feature: when rotating/scaling nodes by keys and one node is mouseovered, it is used as center of rotation and scaling.
3. Lost feature: when ctrl+alt+dragging a node, it should slide along the handles _and their perpendiculars_.
4. Lost feature: when ctrl+alt+dragging a node, and it has a linear segment on one side, it should slide along the continuation of that segment.
5. Lost feature: node sculpting. Will you work on it, or do you want me to work on porting it?
6. Bug: select a single node and rotate it by [] with or without Alt: it rotates around some random center far away, instead of around itself.
7. Lost feature: When rotating a handle with Ctrl, it now snaps to the original position and 15 deg increments from that original position. The previous behaviour was: snap to origin, its opposite and perpendicular, to vertical/horizontal, and to 15 deg steps from vertical. This is much more useful because more often, I use Ctrl to snap it to vertical or some simple angle like 60 deg.
8. Lost feature: create a cusp node next to a linear segment; press Shift+S; it becomes semismooth, aligned with the segment (correct); now press Shift+S again; old behavior is to make it fully smooth, extending the second handle, but your tool does nothing.
9. Lost feature: Rotating a handle with Shift before allowed to rotate the second handle by the same angle, thus rotating a cusp node as a whole; now it does nothing.
10. Suggested feature: now that we can edit multiple paths, Ctrl+A when nothing selected should do the same in Node tool as in Selector, instead of doing nothing as now.
11. Performance: Create a path with thousands of nodes (paste text, convert to path, combine), select it in Node tool: notice how slow it all becomes, freezing for many seconds, as you simply move your mouse over the path. My guess is that it calculates something on each motion event and does not cache the results. The old tool also wasn't very snappy in such situation but it was much better, only freezing for a couple seconds at most with the same file (test it!) partly because it cached the livarot representation of the path it used for proximity/over the path calculations.
12. Lost feature: the statusbar used to say how much total nodes are there ("2 of 5 nodes selected") and, for a single node, its type (smooth, cusp, auto). For multiple subpaths it said e.g. "2 of 9 nodes selected in 2 of 3 subpaths". Now it only says "Selected 2 nodes" (which is also a wrong word order, suggesting an action instead of a state). Could you please just copy this part from the old node tool?
13. Suggested feature: now that we can select multiple objects, the statusbar hints must reflect that, in the same way as subpaths, e.g. "2 of 9 nodes selected in 2 of 3 subpaths in 1 of 2 selected paths", or simply "2 of 9 nodes selected in 1 of 2 selected paths" if there are no subpaths involved.
14. Bug: when dragging a node handle, statusbar erroneously says "Move by" instead of "Node handle:" as did the old tool.
15. When mouseovering a node, it says "click to select" even if it is already selected. I'd like to copy this from the old tool as well, which suggested various modifiers for dragging instead.
16. On the node deletion discussion, I found the current behavior satisfactory: if you Del, you get curved approximation; if you Ctrl+del you get linear segment from linears. I think this is logical (unless I miss something).
17. UI suggestion: since the show/hide seltrans handles button belongs to visualization, it should be moved to the right end of the controls bar, next to node handles and node outline toggles.
18. Crash: draw a path; draw a path and apply it as mask; draw another and apply as clippath; go to node tool; enable both mask and clippath editing; drag a mask node; drag a clippath node; drag a node of the path itself; undo 4 times - crash.
19. UI bug: create with Pen a Spiro path; now switch to Node tool - the green outline of the source path is visible always, even when "show outline of path" toggle is off and "show path parameter" was never pressed. Also, as we discussed in the summer, I suggested a purple color for LPE parameter paths, so they are not confused with clippaths.
20. Crash (somewhat hard to reproduce): With Pencil in Spiro mode, create a path with just two nodes (click, click). Now create a curved doodle path (unrelated bug in Pencil: you need to deselect first path before drawing second, otherwise they will become joined!). Now select both paths, go to Node. Select the end node of the linear path and start node of the curved path. Mouseover the latter and press Shift+J. Then press Ctrl+Z while still mouseovering the joined node. Crash:
Program received signal SIGSEGV, Segmentation fault. Inkscape::UI::NodeList::closed (this=0xbfffe3dc) at ui/tool/node.cpp:1060 1060 { (gdb) bt #0 Inkscape::UI::NodeList::closed (this=0xbfffe3dc) at ui/tool/node.cpp:1060 #1 0x085fc574 in Inkscape::UI::CurveDragPoint::_getTip (this=0xb8d57c8, state=4) at ui/tool/curve-drag-point.cpp:152 #2 0x085fadc1 in Inkscape::UI::ControlPoint::_updateTip (this=0xb8d5790, state=4) at ui/tool/control-point.cpp:470 #3 0x085fb914 in Inkscape::UI::ControlPoint::_setMouseover (p=0xb8d5790, state=4) at ui/tool/control-point.cpp:460 #4 0x085fc122 in Inkscape::UI::ControlPoint::_eventHandler (this=0xb8d5790, event=0xaf56a80) at ui/tool/control-point.cpp:411 #5 0x085faad8 in Inkscape::UI::ControlPoint::_event_handler (event=0xaf56a80, point=0xb8d5790) at ui/tool/control-point.cpp:298 #6 0x0824dd28 in sp_marshal_BOOLEAN__POINTER (closure=0xb5c0270, return_value=0xbfffe80c, n_param_values=2, param_values=0xad41600, invocation_hint=0xbfffe6b0, marshal_data=0x85faac0) at helper/sp-marshal.cpp:352 #7 0x0056a072 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #8 0x0057f7a8 in ?? () from /usr/lib/libgobject-2.0.so.0 #9 0x005809b8 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #10 0x012b38ee in gtk_signal_emit () from /usr/lib/libgtk-x11-2.0.so.0 #11 0x081c66df in emit_event (canvas=<value optimized out>, event=0xb8d57c8) at display/sp-canvas.cpp:1348 #12 0x081c68e3 in pick_current_item (canvas=0x985c060, event=<value optimized out>) at display/sp-canvas.cpp:1491 #13 0x081c9431 in sp_canvas_motion (widget=0x985c060, event=0xaf58340) at display/sp-canvas.cpp:1603