Loading pcbnew/loadcmp.cpp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -107,6 +107,7 @@ bool FOOTPRINT_EDIT_FRAME::Load_Module_From_BOARD( MODULE* aModule ) SetCrossHairPosition( wxPoint( 0, 0 ) ); SetCrossHairPosition( wxPoint( 0, 0 ) ); PlaceModule( newModule, NULL ); PlaceModule( newModule, NULL ); newModule->SetPosition( wxPoint( 0, 0 ) ); // cursor in GAL may not be initialized at the moment // Put it on FRONT layer, // Put it on FRONT layer, // because this is the default in ModEdit, and in libs // because this is the default in ModEdit, and in libs Loading pcbnew/tools/edit_tool.cpp +6 −4 Original line number Original line Diff line number Diff line Loading @@ -453,7 +453,7 @@ int EDIT_TOOL::CopyItems( TOOL_EVENT& aEvent ) frame->DisplayToolMsg( _( "Select reference point" ) ); frame->DisplayToolMsg( _( "Select reference point" ) ); bool cancelled = false; bool cancelled = false; VECTOR2I cursorPos; VECTOR2I cursorPos = getViewControls()->GetCursorPosition(); while( OPT_TOOL_EVENT evt = Wait() ) while( OPT_TOOL_EVENT evt = Wait() ) { { Loading Loading @@ -490,8 +490,10 @@ int EDIT_TOOL::CopyItems( TOOL_EVENT& aEvent ) module.Add( clone ); module.Add( clone ); } } // Set the new relative internal local coordinates of footprint items // Set the new relative internal local coordinates of copied items wxPoint moveVector = module.GetPosition() - wxPoint( cursorPos.x, cursorPos.y ); MODULE* editedModule = getModel<BOARD>()->m_Modules; wxPoint moveVector = module.GetPosition() + editedModule->GetPosition() - wxPoint( cursorPos.x, cursorPos.y ); module.MoveAnchorPosition( moveVector ); module.MoveAnchorPosition( moveVector ); io.Format( &module, 0 ); io.Format( &module, 0 ); Loading @@ -499,7 +501,7 @@ int EDIT_TOOL::CopyItems( TOOL_EVENT& aEvent ) m_toolMgr->SaveClipboard( data ); m_toolMgr->SaveClipboard( data ); } } frame->DisplayToolMsg( wxString::Format( _( "Copied %d items" ), selection.Size() ) ); frame->DisplayToolMsg( wxString::Format( _( "Copied %d item(s)" ), selection.Size() ) ); controls->SetSnapping( false ); controls->SetSnapping( false ); controls->ShowCursor( false ); controls->ShowCursor( false ); controls->SetAutoPan( false ); controls->SetAutoPan( false ); Loading Loading
pcbnew/loadcmp.cpp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -107,6 +107,7 @@ bool FOOTPRINT_EDIT_FRAME::Load_Module_From_BOARD( MODULE* aModule ) SetCrossHairPosition( wxPoint( 0, 0 ) ); SetCrossHairPosition( wxPoint( 0, 0 ) ); PlaceModule( newModule, NULL ); PlaceModule( newModule, NULL ); newModule->SetPosition( wxPoint( 0, 0 ) ); // cursor in GAL may not be initialized at the moment // Put it on FRONT layer, // Put it on FRONT layer, // because this is the default in ModEdit, and in libs // because this is the default in ModEdit, and in libs Loading
pcbnew/tools/edit_tool.cpp +6 −4 Original line number Original line Diff line number Diff line Loading @@ -453,7 +453,7 @@ int EDIT_TOOL::CopyItems( TOOL_EVENT& aEvent ) frame->DisplayToolMsg( _( "Select reference point" ) ); frame->DisplayToolMsg( _( "Select reference point" ) ); bool cancelled = false; bool cancelled = false; VECTOR2I cursorPos; VECTOR2I cursorPos = getViewControls()->GetCursorPosition(); while( OPT_TOOL_EVENT evt = Wait() ) while( OPT_TOOL_EVENT evt = Wait() ) { { Loading Loading @@ -490,8 +490,10 @@ int EDIT_TOOL::CopyItems( TOOL_EVENT& aEvent ) module.Add( clone ); module.Add( clone ); } } // Set the new relative internal local coordinates of footprint items // Set the new relative internal local coordinates of copied items wxPoint moveVector = module.GetPosition() - wxPoint( cursorPos.x, cursorPos.y ); MODULE* editedModule = getModel<BOARD>()->m_Modules; wxPoint moveVector = module.GetPosition() + editedModule->GetPosition() - wxPoint( cursorPos.x, cursorPos.y ); module.MoveAnchorPosition( moveVector ); module.MoveAnchorPosition( moveVector ); io.Format( &module, 0 ); io.Format( &module, 0 ); Loading @@ -499,7 +501,7 @@ int EDIT_TOOL::CopyItems( TOOL_EVENT& aEvent ) m_toolMgr->SaveClipboard( data ); m_toolMgr->SaveClipboard( data ); } } frame->DisplayToolMsg( wxString::Format( _( "Copied %d items" ), selection.Size() ) ); frame->DisplayToolMsg( wxString::Format( _( "Copied %d item(s)" ), selection.Size() ) ); controls->SetSnapping( false ); controls->SetSnapping( false ); controls->ShowCursor( false ); controls->ShowCursor( false ); controls->SetAutoPan( false ); controls->SetAutoPan( false ); Loading