diff --git a/pcbnew/ratsnest_data.cpp b/pcbnew/ratsnest_data.cpp index ea9055088f..b2e1f4da28 100644 --- a/pcbnew/ratsnest_data.cpp +++ b/pcbnew/ratsnest_data.cpp @@ -499,6 +499,9 @@ bool RN_NET::AddItem( const ZONE_CONTAINER* aZone ) // Prepare a list of polygons (every zone can contain one or more polygons) const SHAPE_POLY_SET& polySet = aZone->GetFilledPolysList(); + // This ensures that we record aZone as added even if it contains no polygons. + (void) m_zones[aZone]; + for( int i = 0; i < polySet.OutlineCount(); ++i ) { const SHAPE_LINE_CHAIN& path = polySet.COutline( i ); diff --git a/pcbnew/tools/point_editor.cpp b/pcbnew/tools/point_editor.cpp index dcb58482e3..40088e9e9c 100644 --- a/pcbnew/tools/point_editor.cpp +++ b/pcbnew/tools/point_editor.cpp @@ -42,6 +42,7 @@ using namespace std::placeholders; #include #include #include +#include // Few constants to avoid using bare numbers for point indices enum SEG_POINTS @@ -523,7 +524,10 @@ void POINT_EDITOR::finishItem() const ZONE_CONTAINER* zone = static_cast( item ); if( zone->IsFilled() ) + { getEditFrame()->Fill_Zone( zone ); + zone->GetBoard()->GetRatsnest()->Recalculate( zone->GetNetCode() ); + } } }