From 05785ac6b9579bd4e621a10425f55ef68ec72c8a Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Sun, 7 Aug 2022 08:52:40 +0200 Subject: [PATCH] Teardrops: use default zone settings instead of last settings set by the zone dialog. Fixes #12171 https://gitlab.com/kicad/code/kicad/issues/ Fixes #12172 --- pcbnew/teardrop/teardrop.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pcbnew/teardrop/teardrop.cpp b/pcbnew/teardrop/teardrop.cpp index 1c11e608c5..708048b433 100644 --- a/pcbnew/teardrop/teardrop.cpp +++ b/pcbnew/teardrop/teardrop.cpp @@ -52,11 +52,17 @@ TEARDROP_MANAGER::TEARDROP_MANAGER( BOARD* aBoard, PCB_EDIT_FRAME* aFrame ) // Build a zone teardrop +static ZONE_SETTINGS s_default_settings; // Use zone default settings for teardrop + ZONE* TEARDROP_MANAGER::createTeardrop( TEARDROP_VARIANT aTeardropVariant, std::vector& aPoints, PCB_TRACK* aTrack) const { ZONE* teardrop = new ZONE( m_board ); + // teardrop settings are the last zone settings used by a zone dialog. + // override them by default. + s_default_settings.ExportSetting( *teardrop, false ); + // Add zone properties (priority will be fixed later) teardrop->SetTeardropAreaType( aTeardropVariant == TD_TYPE_PADVIA ? TEARDROP_TYPE::TD_VIAPAD : @@ -77,7 +83,7 @@ ZONE* TEARDROP_MANAGER::createTeardrop( TEARDROP_VARIANT aTeardropVariant, for( VECTOR2I pt: aPoints ) outline->Append(pt.x, pt.y); - // Can be useful: + // Used in priority calculations: teardrop->CalculateFilledArea(); return teardrop;