diff --git a/common/kiway_player.cpp b/common/kiway_player.cpp index 948d23f25e..14deee0efa 100644 --- a/common/kiway_player.cpp +++ b/common/kiway_player.cpp @@ -100,8 +100,8 @@ bool KIWAY_PLAYER::ShowModal( wxString* aResult, wxWindow* aResultantFocusWindow m_modal_resultant_parent = aResultantFocusWindow; - Raise(); // Needed on Ubuntu-14/Unity to display the frame Show( true ); + Raise(); // Needed on sole Window managers to always display the frame SetFocus(); @@ -146,7 +146,7 @@ bool KIWAY_PLAYER::ShowModal( wxString* aResult, wxWindow* aResultantFocusWindow // have the final say, after wxWindowDisabler reenables my parent and // the events settle down, set the focus - wxYield(); + wxSafeYield(); aResultantFocusWindow->SetFocus(); } diff --git a/cvpcb/class_DisplayFootprintsFrame.cpp b/cvpcb/class_DisplayFootprintsFrame.cpp index 79b7730143..0b3a76a57c 100644 --- a/cvpcb/class_DisplayFootprintsFrame.cpp +++ b/cvpcb/class_DisplayFootprintsFrame.cpp @@ -398,7 +398,8 @@ void DISPLAY_FOOTPRINTS_FRAME::Show3D_Frame( wxCommandEvent& event ) return; } - m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ), KICAD_DEFAULT_3D_DRAWFRAME_STYLE ); + m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ) ); + m_Draw3DFrame->Raise(); // Needed with some Window Managers m_Draw3DFrame->Show( true ); } diff --git a/pcbnew/footprint_wizard_frame.cpp b/pcbnew/footprint_wizard_frame.cpp index 6591cc1d50..1b398dfede 100644 --- a/pcbnew/footprint_wizard_frame.cpp +++ b/pcbnew/footprint_wizard_frame.cpp @@ -531,6 +531,7 @@ void FOOTPRINT_WIZARD_FRAME::Show3D_Frame( wxCommandEvent& event ) m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, wxEmptyString ); Update3D_Frame( false ); + m_Draw3DFrame->Raise(); // Needed with some Window Managers m_Draw3DFrame->Show( true ); } diff --git a/pcbnew/moduleframe.cpp b/pcbnew/moduleframe.cpp index dbd4a9cce0..80302a7eb4 100644 --- a/pcbnew/moduleframe.cpp +++ b/pcbnew/moduleframe.cpp @@ -689,6 +689,7 @@ void FOOTPRINT_EDIT_FRAME::Show3D_Frame( wxCommandEvent& event ) } m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ) ); + m_Draw3DFrame->Raise(); // Needed with some Window Managers m_Draw3DFrame->Show( true ); } diff --git a/pcbnew/modview_frame.cpp b/pcbnew/modview_frame.cpp index fe1839092d..44c071efb9 100644 --- a/pcbnew/modview_frame.cpp +++ b/pcbnew/modview_frame.cpp @@ -631,6 +631,7 @@ void FOOTPRINT_VIEWER_FRAME::Show3D_Frame( wxCommandEvent& event ) m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, wxEmptyString ); Update3D_Frame( false ); + m_Draw3DFrame->Raise(); // Needed with some Window Managers m_Draw3DFrame->Show( true ); } diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index 0579115a3b..db870b9894 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -655,6 +655,7 @@ void PCB_EDIT_FRAME::Show3D_Frame( wxCommandEvent& event ) m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ) ); m_Draw3DFrame->SetDefaultFileName( GetBoard()->GetFileName() ); + m_Draw3DFrame->Raise(); // Needed with some Window Managers m_Draw3DFrame->Show( true ); }