diff --git a/eeschema/tools/sch_drawing_tools.cpp b/eeschema/tools/sch_drawing_tools.cpp index 7605ddd0c9..5dfc0e0775 100644 --- a/eeschema/tools/sch_drawing_tools.cpp +++ b/eeschema/tools/sch_drawing_tools.cpp @@ -149,8 +149,6 @@ int SCH_DRAWING_TOOLS::PlaceSymbol( const TOOL_EVENT& aEvent ) auto addSymbol = [&]( SCH_SYMBOL* aSymbol ) { - m_frame->SaveCopyForRepeatItem( aSymbol ); - m_toolMgr->RunAction( EE_ACTIONS::clearSelection, true ); m_selectionTool->AddItemToSel( aSymbol ); @@ -343,6 +341,8 @@ int SCH_DRAWING_TOOLS::PlaceSymbol( const TOOL_EVENT& aEvent ) if( m_frame->eeconfig()->m_AutoplaceFields.enable ) symbol->AutoplaceFields( /* aScreen */ nullptr, /* aManual */ false ); + m_frame->SaveCopyForRepeatItem( symbol ); + symbol->ClearEditFlags(); m_view->Update( symbol ); m_frame->GetScreen()->Update( symbol ); diff --git a/eeschema/tools/sch_move_tool.cpp b/eeschema/tools/sch_move_tool.cpp index 94b48498e9..986a14dd48 100644 --- a/eeschema/tools/sch_move_tool.cpp +++ b/eeschema/tools/sch_move_tool.cpp @@ -924,6 +924,9 @@ int SCH_MOVE_TOOL::Main( const TOOL_EVENT& aEvent ) for( EDA_ITEM* item : selection ) updateItem( item, true ); + if( selection.GetSize() == 1 && selection.Front()->IsNew() ) + m_frame->SaveCopyForRepeatItem( static_cast( selection.Front() ) ); + m_selectionTool->RemoveItemsFromSel( &m_dragAdditions, QUIET_MODE ); // If we move items away from a junction, we _may_ want to add a junction there