Impossible to use the node tool together with an LPE'd path (CanvasItems)
Summary:
This is related to inkscape#1809 (closed), in that the same CanvasItems rewrite is responsible for introducing this bug. @Tavmjong has told me that this bug is caused by inkscape@22628fed.
It is impossible to use the node tool to edit a path that has an LPE on it.
Steps to reproduce:
- Open the attached file
- Open the node tool
- Select the only path in the file
What happened?
Thread 1 "inkscape" received signal SIGSEGV, Segmentation fault.
0x00007ffff71c175e in Inkscape::LivePathEffect::PowerStrokePointArrayParamKnotHolderEntity::knot_get() const () from /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
(gdb) bt
#0 0x00007ffff71c175e in Inkscape::LivePathEffect::PowerStrokePointArrayParamKnotHolderEntity::knot_get() const () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#1 0x00007ffff77e9cbb in KnotHolderEntity::update_knot() () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#2 0x00007ffff77e9e58 in KnotHolderEntity::create(SPDesktop*, SPItem*, KnotHolder*, Inkscape::CanvasItemCtrlType, Glib::ustring const&, char const*, unsigned int) () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#3 0x00007ffff71c1fa7 in Inkscape::LivePathEffect::PowerStrokePointArrayParam::addKnotHolderEntities(KnotHolder*, SPItem*) () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#4 0x00007ffff707aa13 in Inkscape::LivePathEffect::Effect::addHandles(KnotHolder*, SPItem*) () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#5 0x00007ffff72ce667 in Inkscape::UI::createLPEKnotHolder(SPItem*, SPDesktop*) () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#6 0x00007ffff72ca5c4 in Inkscape::UI::ShapeEditor::set_item(SPItem*) () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#7 0x00007ffff73f0038 in Inkscape::UI::Tools::NodeTool::selection_changed(Inkscape::Selection*) () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#8 0x00007ffff783095d in Inkscape::Selection::_emitChanged(bool) () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#9 0x00007ffff73ee4ef in Inkscape::UI::Tools::NodeTool::select_point(Geom::Point const&, _GdkEventButton*) () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#10 0x00007ffff72fc1d0 in Inkscape::UI::SelectorPoint::clicked(_GdkEventButton*) () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#11 0x00007ffff72e14ad in Inkscape::UI::ControlPoint::_eventHandler(Inkscape::UI::Tools::ToolBase*, _GdkEvent*) () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#12 0x00007ffff76576c8 in Inkscape::UI::Widget::Canvas::emit_event(_GdkEvent*) () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#13 0x00007ffff7657f0e in Inkscape::UI::Widget::Canvas::on_button_event(_GdkEventButton*) () at /home/parclytaxel/Documents/Computing/Inkscape/bin/../lib/inkscape/libinkscape_base.so
#14 0x00007ffff62cad29 in Gtk::Widget_Class::button_release_event_callback(_GtkWidget*, _GdkEventButton*) () at /usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1
#15 0x00007ffff58ad5ef in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#16 0x00007ffff47dfa56 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007ffff47fddd1 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007ffff47ff0d3 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007ffff5857c23 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#20 0x00007ffff5713128 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#21 0x00007ffff57153db in gtk_main_do_event () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#22 0x00007ffff3eb9f79 in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#23 0x00007ffff3eed106 in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#24 0x00007ffff64dafbd in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007ffff64db240 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007ffff64db2e3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007ffff490dfd5 in g_application_run () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#28 0x0000555555556a8a in main ()
What should have happened?
I should have been able to use the node tool to edit the underlying path, as it worked in versions prior to the CanvasItems rewrite.
Sample attachments:
Version Info:
- Inkscape Version: 1.1-dev (7593f5a4f8, 2020-08-23)
- Operating System: Ubuntu 20.04
Edited by Parcly Taxel