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_view->IsDirty() )
{ {
if( m_backend != GAL_TYPE_OPENGL && // Already called in opengl if( m_backend != GAL_TYPE_OPENGL // Already called in opengl
m_view->IsTargetDirty( KIGFX::TARGET_NONCACHED ) ) && m_view->IsTargetDirty( KIGFX::TARGET_NONCACHED ) )
{
m_gal->ClearScreen(); m_gal->ClearScreen();
}
m_view->ClearTargets(); 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++ ) for( int i = 0; i < layers_count; i++ )
{ {
int layer = layers[i]; int layer = layers[i];
if( IsZoneLayer( layer ) )
layer = layer - LAYER_ZONE_START;
bool draw = aView->IsLayerVisible( layer ); bool draw = aView->IsLayerVisible( layer );
if( isSelection ) if( isSelection )

View File

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