diff --git a/pcbnew/tools/drawing_tool.cpp b/pcbnew/tools/drawing_tool.cpp index cdea76327e..a827c9e6d9 100644 --- a/pcbnew/tools/drawing_tool.cpp +++ b/pcbnew/tools/drawing_tool.cpp @@ -2848,7 +2848,7 @@ int DRAWING_TOOL::DrawVia( const TOOL_EVENT& aEvent ) if( !( item->GetLayerSet() & lset ).any() ) continue; - if( item->Type() == PCB_TRACE_T || item->Type() == PCB_ARC_T ) + if( item->Type() == PCB_TRACE_T ) { PCB_TRACK* track = static_cast( item ); @@ -2858,6 +2858,13 @@ int DRAWING_TOOL::DrawVia( const TOOL_EVENT& aEvent ) possible_tracks.push_back( track ); } } + else if( item->Type() == PCB_ARC_T ) + { + PCB_ARC* arc = static_cast( item ); + + if( arc->HitTest( position, aVia->GetWidth() / 2 ) ) + possible_tracks.push_back( arc ); + } } PCB_TRACK* return_track = nullptr;