Map zone layers before checking their visibility.

Fixes https://gitlab.com/kicad/code/kicad/issues/10509

(cherry picked from commit 09d0f6e17c)
This commit is contained in:
Jeff Young 2022-01-21 23:23:57 +00:00
parent 66e12af548
commit 2425444947
3 changed files with 11 additions and 5 deletions

View File

@ -252,9 +252,11 @@ void EDA_DRAW_PANEL_GAL::DoRePaint()
if( m_view->IsDirty() )
{
if( m_backend != GAL_TYPE_OPENGL && // Already called in opengl
m_view->IsTargetDirty( KIGFX::TARGET_NONCACHED ) )
if( m_backend != GAL_TYPE_OPENGL // Already called in opengl
&& m_view->IsTargetDirty( KIGFX::TARGET_NONCACHED ) )
{
m_gal->ClearScreen();
}
m_view->ClearTargets();

View File

@ -147,6 +147,10 @@ void VIEW_GROUP::ViewDraw( int aLayer, VIEW* aView ) const
for( int i = 0; i < layers_count; i++ )
{
int layer = layers[i];
if( IsZoneLayer( layer ) )
layer = layer - LAYER_ZONE_START;
bool draw = aView->IsLayerVisible( layer );
if( isSelection )

View File

@ -1742,10 +1742,10 @@ void PCB_PAINTER::draw( const ZONE* aZone, int aLayer )
// Draw each contour (main contour and holes)
/* This line:
/*
* m_gal->DrawPolygon( *outline );
* should be enough, but currently does not work to draw holes contours in a complex polygon
* so each contour is draw as a simple polygon
* should be enough, but currently does not work to draw holes contours in a complex
* polygon so each contour is draw as a simple polygon
*/
// Draw the main contour