From 23b6a597a8c06baab0e90ae2d8d287cab2dbaa3e Mon Sep 17 00:00:00 2001 From: YuSanka Date: Tue, 16 Feb 2021 21:20:06 +0100 Subject: [PATCH] Fixed a bug with erase of the multiple instance selection in 3D-scene + Try to fix accidentally crash on Copy/Paste --- src/slic3r/GUI/GUI_ObjectList.cpp | 2 ++ src/slic3r/GUI/Selection.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index b06821bb0..eb26ce448 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -3952,6 +3952,8 @@ void ObjectList::select_items(const wxDataViewItemArray& sels) { m_prevent_list_events = true; + m_last_selected_item = sels.empty() ? wxDataViewItem(nullptr) : sels.back(); + UnselectAll(); SetSelections(sels); part_selection_changed(); diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index 1cb599fc8..214c2632a 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -1160,7 +1160,7 @@ void Selection::erase() if (obj_ins.first == glv_obj_idx) { if (obj_ins.second.find(glv_ins_idx) != obj_ins.second.end()) { if (obj_ins.second.size() == model_object->instances.size()) - items_set.insert(ItemForDelete(ItemType::itVolume, glv_obj_idx, gl_vol->volume_idx())); + items_set.insert(ItemForDelete(ItemType::itObject, glv_obj_idx, -1)); else items_set.insert(ItemForDelete(ItemType::itInstance, glv_obj_idx, glv_ins_idx));