diff --git a/pcbnew/tools/drawing_tool.cpp b/pcbnew/tools/drawing_tool.cpp index f5483401da..3742f424b4 100644 --- a/pcbnew/tools/drawing_tool.cpp +++ b/pcbnew/tools/drawing_tool.cpp @@ -454,7 +454,7 @@ int DRAWING_TOOL::PlaceText( const TOOL_EVENT& aEvent ) } } - frame()->SetMsgPanel( nullptr ); + frame()->SetMsgPanel( board() ); frame()->SetNoToolSelected(); return 0; @@ -631,7 +631,7 @@ int DRAWING_TOOL::DrawDimension( const TOOL_EVENT& aEvent ) delete dimension; m_view->Remove( &preview ); - frame()->SetMsgPanel( nullptr ); + frame()->SetMsgPanel( board() ); m_frame->SetNoToolSelected(); return 0; @@ -1072,7 +1072,11 @@ bool DRAWING_TOOL::drawSegment( int aShape, DRAWSEGMENT*& aGraphic, aGraphic->SetEnd( wxPoint( cursorPos.x, cursorPos.y ) ); m_view->Update( &preview ); - frame()->SetMsgPanel( aGraphic ); + + if( started ) + frame()->SetMsgPanel( aGraphic ); + else + frame()->SetMsgPanel( board() ); } else if( evt->IsAction( &PCB_ACTIONS::incWidth ) ) { @@ -1100,7 +1104,7 @@ bool DRAWING_TOOL::drawSegment( int aShape, DRAWSEGMENT*& aGraphic, m_frame->GetScreen()->m_O_Curseur = wxPoint( 0, 0 ); m_view->Remove( &preview ); - frame()->SetMsgPanel( nullptr ); + frame()->SetMsgPanel( board() ); m_controls->SetAutoPan( false ); m_controls->CaptureCursor( false ); @@ -1202,6 +1206,7 @@ bool DRAWING_TOOL::drawArc( DRAWSEGMENT*& aGraphic ) m_lineWidth += WIDTH_STEP; aGraphic->SetWidth( m_lineWidth ); m_view->Update( &preview ); + frame()->SetMsgPanel( aGraphic ); } else if( evt->IsAction( &PCB_ACTIONS::decWidth ) && m_lineWidth > WIDTH_STEP ) { @@ -1224,14 +1229,18 @@ bool DRAWING_TOOL::drawArc( DRAWSEGMENT*& aGraphic ) updateArcFromConstructionMgr( arcManager, *aGraphic ); m_view->Update( &preview ); m_view->Update( &arcAsst ); - frame()->SetMsgPanel( aGraphic ); + + if(firstPoint) + frame()->SetMsgPanel( aGraphic ); + else + frame()->SetMsgPanel( board() ); } } preview.Remove( aGraphic ); m_view->Remove( &arcAsst ); m_view->Remove( &preview ); - frame()->SetMsgPanel( nullptr ); + frame()->SetMsgPanel( board() ); m_controls->SetAutoPan( false ); m_controls->CaptureCursor( false ); diff --git a/pcbnew/tools/edit_tool.cpp b/pcbnew/tools/edit_tool.cpp index 692309841b..f1676ee3e4 100644 --- a/pcbnew/tools/edit_tool.cpp +++ b/pcbnew/tools/edit_tool.cpp @@ -438,6 +438,8 @@ int EDIT_TOOL::Main( const TOOL_EVENT& aEvent ) { static_cast( item )->Move( movement ); } + + frame()->UpdateMsgPanel(); } else if( !m_dragging ) // Prepare to start dragging { diff --git a/pcbnew/tools/point_editor.cpp b/pcbnew/tools/point_editor.cpp index 5ca408769e..7e6fd7047f 100644 --- a/pcbnew/tools/point_editor.cpp +++ b/pcbnew/tools/point_editor.cpp @@ -391,7 +391,7 @@ int POINT_EDITOR::OnSelectionChange( const TOOL_EVENT& aEvent ) m_editPoints.reset(); } - frame()->SetMsgPanel( nullptr ); + frame()->SetMsgPanel( board() ); return 0; }