0.92.x Objects dialog not updated on deleting sub-layer with object
Migrated from https://bugs.launchpad.net/inkscape/+bug/1720226
Steps to reproduce
- draw one or several objects
- group these objects
- Open Objects dialog
- In the "T" column, toggle this group to layer
- Open Layer dialog (Shift+Ctrl+L)
- In layer dialog delete this (sub)layer
- in object dialog select one of the objects (which should have been gone) Inkscape crashes!
What happened?
Objects dialog isn't updated. On selecting this removed items, a crash occurs.
Backtrace in 0.92.x (2017)
◊0 0x00007ffff2fca434 in __dynamic_cast () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ◊1 0x00007ffff6bbeb4f in Inkscape::UI::Dialog::ObjectsPanel::_selected_row_callback(Gtk::TreeIter const&, bool*) (this=0x555559254080, iter=..., setCompositingValues=0x7fffffffcf77) at ../src/ui/dialog/objects.cpp:632 ◊2 0x00007ffff6bd828b in sigc::bound_mem_functor2::operator()(Gtk::TreeIter const&, bool* const&) const (this=0x5555593eae30, _A_a1=..., _A_a2=@0x5555593eae50: 0x7fffffffcf77) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:2143 ◊3 0x00007ffff6bd7325 in sigc::adaptor_functor >::operator()(Gtk::TreeIter const&, bool*&) const (this=0x5555593eae28, _A_arg1=..., _A_arg2=@0x5555593eae50: 0x7fffffffcf77) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:108 ◊4 0x00007ffff6bd5701 in sigc::bind_functor<-1, sigc::bound_mem_functor2, bool*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::operator()(Gtk::TreeIter const&) (this=0x5555593eae20, _A_arg1=...) at /usr/include/sigc++-2.0/sigc++/adaptors/bind.h:1136 ◊5 0x00007ffff6bd34bd in sigc::internal::slot_call1, bool*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, void, Gtk::TreeIter const&>::call_it(sigc::internal::slot_rep*, Gtk::TreeIter const&) (rep=0x5555593eadf0, a_1=...) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:148 ◊6 0x00007ffff46d8bd3 in () at /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1 ◊7 0x00007ffff3fd3ad4 in gtk_tree_selection_selected_foreach () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 ◊8 0x00007ffff46d9160 in Gtk::TreeSelection::selected_foreach_iter(sigc::slot const&) const () at /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1 ◊9 0x00007ffff6bbe9d3 in Inkscape::UI::Dialog::ObjectsPanel::_pushTreeSelectionToCurrent() (this=0x555559254080) at ../src/ui/dialog/objects.cpp:612 ◊10 0x00007ffff6bd6b04 in sigc::bound_mem_functor0::operator()() const (this=0x55555925e8c8) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1991 ◊11 0x00007ffff6bd4a98 in sigc::adaptor_functor >::operator()() const (this=0x55555925e8c0) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256 ◊12 0x00007ffff6bd40bc in sigc::internal::slot_call0, void>::call_it(sigc::internal::slot_rep*) (rep=0x55555925e890) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:114 ◊13 0x00007ffff3b9a548 in sigc::slot0::operator()() const (this=0x555559274628) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:513 ◊14 0x00007ffff3b9a548 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) (self=, data=0x555559274620) at signalproxy.cc:103 ◊18 0x00007ffff1d7b12f in (instance=, signal_id=, detail=) at ../../../../gobject/gsignal.c:3447 ◊15 0x00007ffff1d5f10d in g_closure_invoke (closure=0x555559274590, return_value=0x0, n_param_values=1, param_values=0x7fffffffd260, invocation_hint=0x7fffffffd1e0) at ../../../../gobject/gclosure.c:804 ◊16 0x00007ffff1d71bf1 in signal_emit_unlocked_R (node=node@entry=0x555557f504d0, detail=detail@entry=0, instance=instance@entry=0x555557e15840, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd260) at ../../../../gobject/gsignal.c:3705 ◊17 0x00007ffff1d7a715 in g_signal_emit_valist (instance=, signal_id=, detail=, var_args=var_args@entry=0x7fffffffd420) at ../../../../gobject/gsignal.c:3391 ◊19 0x00007ffff3fe8b0f in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 ◊20 0x00007ffff3fed330 in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 ◊21 0x00007ffff3ef038b in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 ◊25 0x00007ffff1d7b12f in (instance=, signal_id=, detail=) at ../../../../gobject/gsignal.c:3447 ◊22 0x00007ffff1d5f10d in g_closure_invoke (closure=0x555555814a30, return_value=0x7fffffffd7f0, n_param_values=2, param_values=0x7fffffffd850, invocation_hint=0x7fffffffd7d0) at ../../../../gobject/gclosure.c:804 ◊23 0x00007ffff1d71de8 in signal_emit_unlocked_R (node=node@entry=0x555555814a80, detail=detail@entry=0, instance=instance@entry=0x555557f53080, emission_return=emission_return@entry=0x7fffffffd970, instance_and_params=instance_and_params@entry=0x7fffffffd850) at ../../../../gobject/gsignal.c:3673 ◊24 0x00007ffff1d7a0af in g_signal_emit_valist (instance=, signal_id=, detail=, var_args=var_args@entry=0x7fffffffda20) at ../../../../gobject/gsignal.c:3401 ◊26 0x00007ffff40062bc in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 ◊27 0x00007ffff3eee62c in gtk_propagate_event () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 ◊28 0x00007ffff3eeea2b in gtk_main_do_event () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 ◊29 0x0000555555565ff9 in snooper(GdkEvent*, gpointer) (event=0x555558b716c0) at ../src/main.cpp:1043 ◊30 0x00007ffff36de02c in () at /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0 ◊31 0x00007ffff5008417 in g_main_dispatch (context=0x5555558a1e10) at ../../../../glib/gmain.c:3176 ◊32 0x00007ffff5008417 in g_main_context_dispatch (context=context@entry=0x5555558a1e10) at ../../../../glib/gmain.c:3829 ◊33 0x00007ffff5008650 in g_main_context_iterate (context=0x5555558a1e10, block=block@entry=1, dispatch=dispatch@entry=1, self=) at ../../../../glib/gmain.c:3902 ◊34 0x00007ffff5008962 in g_main_loop_run (loop=0x555557ef4770) at ../../../../glib/gmain.c:4098 ◊35 0x00007ffff3eeda37 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 ◊36 0x000055555556652a in sp_main_gui(int, char const**) (argc=1, argv=0x7fffffffdfd8) at ../src/main.cpp:1173 ◊37 0x00005555555659b8 in main(int, char**) (argc=1, argv=0x7fffffffdfd8) at ../src/main.cpp:817
What should have happened?
Objects dialog should be updated properly, avoiding the crash.
Inkscape Version and Operating System:
- Inkscape 0.92.4 (30a405ac91, 2019-07-15) build Linux Mint 19.1
- Inkscape 0.92.4 5da689c313, 2019-01-14 flatpak Linux Mint 19.1
- No longer present in master