diff --git a/pcbnew/zone.cpp b/pcbnew/zone.cpp index 64ddcf688c..0a42889731 100644 --- a/pcbnew/zone.cpp +++ b/pcbnew/zone.cpp @@ -741,7 +741,20 @@ void ZONE::Flip( const VECTOR2I& aCentre, bool aFlipLeftRight ) { Mirror( aCentre, aFlipLeftRight ); + std::map fillsCopy; + + for( auto& [oldLayer, shapePtr] : m_FilledPolysList ) + { + fillsCopy[oldLayer] = *shapePtr; + } + SetLayerSet( FlipLayerMask( GetLayerSet(), GetBoard()->GetCopperLayerCount() ) ); + + for( auto& [oldLayer, shape] : fillsCopy ) + { + PCB_LAYER_ID newLayer = FlipLayer( oldLayer, GetBoard()->GetCopperLayerCount() ); + SetFilledPolysList( newLayer, shape ); + } }