3D viewer: ensure the activity messages are displayed on Linux after Frame creation.

This commit is contained in:
jean-pierre charras 2021-07-19 10:10:25 +02:00
parent 1c1f7ac07e
commit 9cb4c9bfc2
2 changed files with 11 additions and 5 deletions

View File

@ -453,9 +453,13 @@ EDA_3D_VIEWER_FRAME* PCB_BASE_FRAME::CreateAndShow3D_Frame()
draw3DFrame->SetFocus();
// Allocate a slice of time to display the 3D frame
wxSafeYield();
// And show the current board
Update3DView( true, true );
// a call to wxSafeYield() should be enough (and better), but on Linux we need
// to call wxYield()
// otherwise the activity messages are not displayed during the first board loading
wxYield();
// Note, the caller is responsible to load/update the board 3D view.
// after frame creation the board is not automatically created.
return draw3DFrame;
}

View File

@ -68,11 +68,13 @@ int PCB_VIEWER_TOOLS::Show3DViewer( const TOOL_EVENT& aEvent )
|| frame()->IsType( FRAME_FOOTPRINT_VIEWER_MODAL )
|| frame()->IsType( FRAME_FOOTPRINT_WIZARD ) )
{
frame()->Update3DView( true, true );
// A stronger version of Raise() which promotes the window to its parent's level.
KIPLATFORM::UI::ReparentQuasiModal( draw3DFrame );
}
// And load or update the current board
frame()->Update3DView( true, true );
return 0;
}