Ungrouping objects takes excessive amount of time if Layers & Objects dialog is open
Steps to reproduce:
- open Inkscape
- open new Layers and Object dialog
- open provided file (it's a free to use font)
- select top object (it's a group)
- ungroup and ungroup again
What happened?
- Inkscape stops responding
What should have happened?
- object should be ungrouped
Inkscape Version and Operating System:
- Inkscape Version: Inkscape 1.2-dev (c0dbea8f, 2022-01-30), Arm64 build
- Operating System: macOS
- Operating System version: 12.2
File to test:
Profiler output:
0 libgtk-3.0.dylib gtk_tree_store_iter_n_children
1 libgtk-3.0.dylib gtk_tree_model_iter_n_children
2 libgtk-3.0.dylib gtk_tree_row_ref_reordered
3 libgtk-3.0.dylib rows_reordered_marshal
4 libgobject-2.0.0.dylib g_closure_invoke
5 libgobject-2.0.0.dylib signal_emit_unlocked_R
6 libgobject-2.0.0.dylib g_signal_emit_valist
7 libgobject-2.0.0.dylib g_signal_emit
8 libgtk-3.0.dylib gtk_tree_model_rows_reordered
9 libgtk-3.0.dylib gtk_tree_store_move
10 libinkscape_base.dylib Inkscape::UI::Dialog::ObjectWatcher::moveChild(Inkscape::XML::Node&, Inkscape::XML::Node*) /Users/mike/dev/inkscape/src/ui/dialog/objects.cpp:466
11 libinkscape_base.dylib Inkscape::UI::Dialog::ObjectWatcher::notifyChildAdded(Inkscape::XML::Node&, Inkscape::XML::Node&, Inkscape::XML::Node*) /Users/mike/dev/inkscape/src/ui/dialog/objects.cpp:515
12 libinkscape_base.dylib Inkscape::XML::CompositeNodeObserver::notifyChildAdded(Inkscape::XML::Node&, Inkscape::XML::Node&, Inkscape::XML::Node*) /Users/mike/dev/inkscape/src/xml/composite-node-observer.cpp:43
13 libinkscape_base.dylib Inkscape::XML::SimpleNode::addChild(Inkscape::XML::Node*, Inkscape::XML::Node*) /Users/mike/dev/inkscape/src/xml/simple-node.cpp:459
14 libinkscape_base.dylib sp_item_group_ungroup(SPGroup*, std::__1::vector<SPItem*, std::__1::allocator<SPItem*> >&, bool) /Users/mike/dev/inkscape/src/object/sp-item-group.cpp:684
Note: the same ungrouping operation will succeed in around 5 seconds if Layers dialog is closed.