@@ -984,10 +984,8 @@ void RibbonMenu::cloneTree( const std::vector<std::shared_ptr<Object>>& selected
984984 if ( !obj )
985985 continue ;
986986 auto cloneObj = obj->cloneTree ();
987- AppendHistory<ChangeObjectSelectedAction>( " unselect base obj" , obj );
988- obj->select ( false );
989- AppendHistory<ChangeObjectVisibilityAction>( " make base obj invisible" , obj );
990- obj->setVisible ( false );
987+ AppendHistory<ChangeObjectSelectedAction>( " unselect original" , obj, false );
988+ AppendHistory<ChangeObjectVisibilityAction>( " hide original" , obj, ViewportMask () );
991989 auto name = obj->name ();
992990 if ( std::regex_match ( name, pattern ) )
993991 {
@@ -1016,6 +1014,7 @@ void RibbonMenu::cloneTree( const std::vector<std::shared_ptr<Object>>& selected
10161014
10171015void RibbonMenu::cloneSelectedPart ( const std::shared_ptr<Object>& object )
10181016{
1017+ SCOPED_HISTORY ( " Clone Selection" );
10191018 std::shared_ptr<VisualObject> newObj;
10201019 std::string name;
10211020 if ( auto selectedMesh = std::dynamic_pointer_cast< ObjectMesh >( object ) )
@@ -1033,8 +1032,12 @@ void RibbonMenu::cloneSelectedPart( const std::shared_ptr<Object>& object )
10331032 name = " ObjectPoints" ;
10341033 }
10351034
1035+ AppendHistory<ChangeObjectSelectedAction>( " unselect original" , object, false );
1036+ AppendHistory<ChangeObjectVisibilityAction>( " hide original" , object, ViewportMask () );
1037+
10361038 newObj->setName ( object->name () + " Partial" );
10371039 newObj->setXf ( object->xf () );
1040+ newObj->select ( true );
10381041 AppendHistory<ChangeSceneAction>( " Selection to New object: add " + name, newObj, ChangeSceneAction::Type::AddObject );
10391042 object->parent ()->addChild ( newObj );
10401043}
0 commit comments