From 30f259f79cdc6c6c400e394df81e8ba249e2e29e Mon Sep 17 00:00:00 2001
From: YuSanka <yusanka@gmail.com>
Date: Thu, 12 Dec 2019 13:49:12 +0100
Subject: [PATCH] Fixed a bug (OSX specific) caused a crash on undo after
 Copy/Past several objects

---
 src/slic3r/GUI/GUI_ObjectList.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp
index 010c24005..7e5353718 100644
--- a/src/slic3r/GUI/GUI_ObjectList.cpp
+++ b/src/slic3r/GUI/GUI_ObjectList.cpp
@@ -3953,8 +3953,15 @@ void ObjectList::update_after_undo_redo()
     Plater::SuppressSnapshots suppress(wxGetApp().plater());
 
     // Unselect all objects before deleting them, so that no change of selection is emitted during deletion.
-    unselect_objects();//this->UnselectAll();
+
+    /* To avoid execution of selection_changed() 
+     * from wxEVT_DATAVIEW_SELECTION_CHANGED emitted from DeleteAll(), 
+     * wrap this two functions into m_prevent_list_events *
+     * */
+    m_prevent_list_events = true;
+    this->UnselectAll();
     m_objects_model->DeleteAll();
+    m_prevent_list_events = false;
 
     size_t obj_idx = 0;
     std::vector<size_t> obj_idxs;