eeschema: Fix print order between worksheet and screen

The worksheet should be drawn behind the screen.
This commit is contained in:
Seth Hillbrand 2020-01-09 20:28:48 -08:00
parent c2904ce7e9
commit d1a0102e84
2 changed files with 12 additions and 2 deletions

View File

@ -482,7 +482,17 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList( const PAGE_INFO& aPageInfo,
*/
void WS_DRAW_ITEM_LIST::Print( wxDC* aDC, COLOR4D aColor )
{
std::vector<WS_DRAW_ITEM_BASE*> second_items;
for( WS_DRAW_ITEM_BASE* item = GetFirst(); item; item = GetNext() )
{
if( item->Type() == WSG_BITMAP_T )
item->PrintWsItem( aDC, aColor );
else
second_items.push_back( item );
}
for( auto item : second_items )
item->PrintWsItem( aDC, aColor );
}

View File

@ -423,8 +423,6 @@ void SCH_PRINTOUT::PrintPage( SCH_SCREEN* aScreen )
if( m_parent->GetPrintMonochrome() )
GRForceBlackPen( true );
aScreen->Print( dc );
if( printReference )
{
m_parent->PrintWorkSheet( dc, aScreen, GetDefaultLineThickness(), IU_PER_MILS,
@ -432,6 +430,8 @@ void SCH_PRINTOUT::PrintPage( SCH_SCREEN* aScreen )
GetLayerColor( ( SCH_LAYER_ID )LAYER_WORKSHEET ) );
}
aScreen->Print( dc );
m_parent->SetDrawBgColor( bgColor );
aScreen->m_IsPrinting = false;