diff --git a/pcbnew/tools/drawing_tool.cpp b/pcbnew/tools/drawing_tool.cpp index 3c45773f59..cf73b54236 100644 --- a/pcbnew/tools/drawing_tool.cpp +++ b/pcbnew/tools/drawing_tool.cpp @@ -263,6 +263,8 @@ int DRAWING_TOOL::DrawLine( const TOOL_EVENT& aEvent ) m_frame->SetToolID( m_editModules ? ID_MODEDIT_LINE_TOOL : ID_PCB_ADD_LINE_BUTT, wxCURSOR_PENCIL, _( "Add graphic line" ) ); + Activate(); + while( drawSegment( S_SEGMENT, line, startingPoint ) ) { // This can be reset by some actions (e.g. Save Board), so ensure it stays set. @@ -308,6 +310,8 @@ int DRAWING_TOOL::DrawCircle( const TOOL_EVENT& aEvent ) m_frame->SetToolID( m_editModules ? ID_MODEDIT_CIRCLE_TOOL : ID_PCB_CIRCLE_BUTT, wxCURSOR_PENCIL, _( "Add graphic circle" ) ); + Activate(); + while( drawSegment( S_CIRCLE, circle ) ) { // This can be reset by some actions (e.g. Save Board), so ensure it stays set. @@ -1010,8 +1014,6 @@ bool DRAWING_TOOL::drawSegment( int aShape, DRAWSEGMENT*& aGraphic, OPTRunAction( PCB_ACTIONS::selectionClear, true ); m_controls->ShowCursor( true ); - Activate(); - bool direction45 = false; // 45 degrees only mode bool started = false; bool isLocalOriginSet = ( m_frame->GetScreen()->m_LocalOrigin != VECTOR2D( 0, 0 ) );