Synfig version & platform:
(we're more likely to help if you're using latest development builds)
Synfig Build: 1.3.5
OS: Windows 7 Ultimate
Issue description:
Synfig crashes when selecting both control point (vertex) and tangents (handle) and trying to right click the tangent to get the floating menu.
Reproduction Steps:
Conditions:
1) Create a new synfig canvas
2) Pick the spline tool. Use Layer Type: _Create Region Layer_
3) Create a two-point spline and close (loop) it
4) Press ctrl then click & drag the vertex and handles for any point.
5) Once selected (brighter color) right click over the handle. Synfig will crash.
Edit: I can reproduce this 100% of the time with these steps.
Closing spline and moving points seems to be unnecessary - crash happens regardless.
Backtrace:
#0 0x00007ffff36147bb in etl::handle<synfig::ValueNode>::handle(etl::handle<synfig::ValueNode> const&) (x=..., this=0x7fffffffca98)
at /usr/local/include/ETL/_handle.h:208
#1 0x00007ffff36147bb in synfigapp::ValueDesc::ValueDesc(synfigapp::ValueDesc const&) (other=..., this=0x7fffffffca70)
at ../src/synfigapp/value_desc.h:220
#2 0x00007ffff36147bb in synfigapp::Action::ValueDescBoneLink::is_candidate(synfigapp::Action::ParamList const&) (x=...)
at ../src/synfigapp/actions/valuedescbonelink.cpp:104
#3 0x00007ffff3509067 in synfigapp::Action::compile_candidate_list(synfigapp::Action::ParamList const&, synfigapp::Action::Category) (param_list=..., category=category@entry=48) at ../src/synfigapp/action.cpp:346
#4 0x000055555583c3fd in studio::Instance::add_actions_to_menu(Gtk::Menu*, synfigapp::Action::ParamList const&, synfigapp::Action::Category) const (this=this@entry=0x555556fd1e20, menu=menu@entry=0x555557677d90, param_list=..., category=category@entry=48) at ../src/gui/instance.cpp:984
#5 0x0000555555847344 in studio::Instance::make_param_menu(Gtk::Menu*, etl::handle<synfig::Canvas>, std::__cxx11::list<synfigapp::ValueDesc, std::allocator<synfigapp::ValueDesc> > const&, synfigapp::ValueDesc const&) (this=this@entry=0x555556fd1e20, menu=menu@entry=0x555557677d90, canvas=..., value_desc_list=empty std::__cxx11::list, value_desc=...) at ../src/gui/instance.cpp:1575
#6 0x00005555559aff5e in studio::StateNormal_Context::event_multiple_ducks_clicked_handler(etl::smach<studio::CanvasView, studio::EventKey, etl::mutex_null>::event const&) (this=<optimized out>, x=...) at ../src/gui/states/state_normal.cpp:821
#7 0x00005555559b1c35 in etl::smach<studio::CanvasView, studio::EventKey, etl::mutex_null>::state<studio::StateNormal_Context>::process_event(void*, etl::smach<studio::CanvasView, studio::EventKey, etl::mutex_null>::event const&) const (this=0x555555e2e0e0 <studio::state_normal>, x=0x555557410320, id=...) at /usr/local/include/ETL/_smach.h:267
#8 0x00005555557f1381 in etl::smach<studio::CanvasView, studio::EventKey, etl::mutex_null>::process_event(etl::smach<studio::CanvasView, studio::EventKey, etl::mutex_null>::event const&) (this=0x555556fd8218, id=...) at /usr/local/include/ETL/_smach.h:573
#9 0x000055555588bedd in studio::WorkArea::on_drawing_area_event(_GdkEvent*) (this=0x555557389cb0, event=<optimized out>)
at ../src/gui/workarea.cpp:1914
#10 0x00007ffff7a3682b in () at /usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1
#11 0x00007ffff628915b in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#12 0x00007ffff458af9d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff459db15 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff45a5e0f in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007ffff45a6e8f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ffff63d3ad5 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#17 0x00007ffff62860ee in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#18 0x00007ffff6288268 in gtk_main_do_event () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#19 0x00007ffff5d953e5 in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#20 0x00007ffff5dc6bb2 in () at /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#21 0x00007ffff42b1fa7 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007ffff42b21e0 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007ffff42b24f2 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007ffff6287345 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#25 0x00005555557467f8 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ../src/gui/main.cpp:125
Video on how to reproduce - https://youtu.be/2dFiUpi-gaY
Just saw this was fixed on today's development report! As soon as the dev version is up i'll test to confirm it gone. Thanks a lot for all of your hard work!
Shipped in version 1.3.7 - https://www.synfig.org/2018/05/14/synfig-studio-1-3-7-released/
Most helpful comment
Closing spline and moving points seems to be unnecessary - crash happens regardless.
Backtrace: