Fix Bug #1498252 (segfault + assert failed in Yield(): wxYield called recursively) and a few other issues (footprint viewer or 3D viewer not always raised in some cases). Linux specific
This commit is contained in:
commit
20a3e236fa
|
@ -100,8 +100,8 @@ bool KIWAY_PLAYER::ShowModal( wxString* aResult, wxWindow* aResultantFocusWindow
|
||||||
|
|
||||||
m_modal_resultant_parent = aResultantFocusWindow;
|
m_modal_resultant_parent = aResultantFocusWindow;
|
||||||
|
|
||||||
Raise(); // Needed on Ubuntu-14/Unity to display the frame
|
|
||||||
Show( true );
|
Show( true );
|
||||||
|
Raise(); // Needed on sole Window managers to always display the frame
|
||||||
|
|
||||||
SetFocus();
|
SetFocus();
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ bool KIWAY_PLAYER::ShowModal( wxString* aResult, wxWindow* aResultantFocusWindow
|
||||||
|
|
||||||
// have the final say, after wxWindowDisabler reenables my parent and
|
// have the final say, after wxWindowDisabler reenables my parent and
|
||||||
// the events settle down, set the focus
|
// the events settle down, set the focus
|
||||||
wxYield();
|
wxSafeYield();
|
||||||
aResultantFocusWindow->SetFocus();
|
aResultantFocusWindow->SetFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -398,7 +398,8 @@ void DISPLAY_FOOTPRINTS_FRAME::Show3D_Frame( wxCommandEvent& event )
|
||||||
return;
|
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 );
|
m_Draw3DFrame->Show( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -531,6 +531,7 @@ void FOOTPRINT_WIZARD_FRAME::Show3D_Frame( wxCommandEvent& event )
|
||||||
|
|
||||||
m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, wxEmptyString );
|
m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, wxEmptyString );
|
||||||
Update3D_Frame( false );
|
Update3D_Frame( false );
|
||||||
|
m_Draw3DFrame->Raise(); // Needed with some Window Managers
|
||||||
m_Draw3DFrame->Show( true );
|
m_Draw3DFrame->Show( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -689,6 +689,7 @@ void FOOTPRINT_EDIT_FRAME::Show3D_Frame( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ) );
|
m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ) );
|
||||||
|
m_Draw3DFrame->Raise(); // Needed with some Window Managers
|
||||||
m_Draw3DFrame->Show( true );
|
m_Draw3DFrame->Show( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -631,6 +631,7 @@ void FOOTPRINT_VIEWER_FRAME::Show3D_Frame( wxCommandEvent& event )
|
||||||
|
|
||||||
m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, wxEmptyString );
|
m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, wxEmptyString );
|
||||||
Update3D_Frame( false );
|
Update3D_Frame( false );
|
||||||
|
m_Draw3DFrame->Raise(); // Needed with some Window Managers
|
||||||
m_Draw3DFrame->Show( true );
|
m_Draw3DFrame->Show( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -655,6 +655,7 @@ void PCB_EDIT_FRAME::Show3D_Frame( wxCommandEvent& event )
|
||||||
|
|
||||||
m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ) );
|
m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ) );
|
||||||
m_Draw3DFrame->SetDefaultFileName( GetBoard()->GetFileName() );
|
m_Draw3DFrame->SetDefaultFileName( GetBoard()->GetFileName() );
|
||||||
|
m_Draw3DFrame->Raise(); // Needed with some Window Managers
|
||||||
m_Draw3DFrame->Show( true );
|
m_Draw3DFrame->Show( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue