Page layout bitmap size wrong in modern/GAL canvases.

The image scale set by pl_editor was not taken in account when drawing the page layout.

Fixes: lp:1798685
https://bugs.launchpad.net/kicad/+bug/1798685
This commit is contained in:
jean-pierre charras 2018-10-20 18:24:22 +02:00
parent 7be215249d
commit dafeb96765
2 changed files with 12 additions and 2 deletions

View File

@ -207,6 +207,14 @@ void WORKSHEET_VIEWITEM::draw( const WS_DRAW_ITEM_BITMAP* aItem, GAL* aGal ) con
VECTOR2D position = aItem->GetPosition();
aGal->Translate( position );
WORKSHEET_DATAITEM_BITMAP* parent = static_cast<WORKSHEET_DATAITEM_BITMAP*>( aItem->GetParent() );
// When the image scale factor is not 1.0, we need to modify the actual scale
// as the image scale factor is similar to a local zoom
double img_scale = parent->m_ImageBitmap->GetScale();
if( img_scale != 1.0 )
aGal->Scale( VECTOR2D( img_scale, img_scale ) );
aGal->DrawBitmap( *parent->m_ImageBitmap );
aGal->Restore();
}

View File

@ -1350,8 +1350,10 @@ void SCH_PAINTER::draw( SCH_BITMAP *aBitmap, int aLayer )
// When the image scale factor is not 1.0, we need to modify the actual
// as the image scale factor is similar to a local zoom
if( aBitmap->GetImageScale() != 1.0 )
m_gal->Scale( VECTOR2D( aBitmap->GetImageScale(), aBitmap->GetImageScale() ) );
double img_scale = aBitmap->GetImageScale();
if( img_scale != 1.0 )
m_gal->Scale( VECTOR2D( img_scale, img_scale ) );
m_gal->DrawBitmap( *aBitmap->GetImage() );