A possible hack to work around the apple runModal bug.
Fixes: lp:1837225 * https://bugs.launchpad.net/kicad/+bug/1837225
This commit is contained in:
parent
ab7cf4a2b0
commit
4d4adf0753
|
@ -1022,13 +1022,22 @@ void SCH_EDIT_TOOL::editComponentFieldText( SCH_FIELD* aField )
|
||||||
if( aField->GetEditFlags() == 0 ) // i.e. not edited, or moved
|
if( aField->GetEditFlags() == 0 ) // i.e. not edited, or moved
|
||||||
m_frame->SaveCopyInUndoList( component, UR_CHANGED );
|
m_frame->SaveCopyInUndoList( component, UR_CHANGED );
|
||||||
|
|
||||||
wxString title;
|
wxString title = wxString::Format( _( "Edit %s Field" ), aField->GetName() );
|
||||||
title.Printf( _( "Edit %s Field" ), GetChars( aField->GetName() ) );
|
|
||||||
|
|
||||||
DIALOG_SCH_EDIT_ONE_FIELD dlg( m_frame, title, aField );
|
DIALOG_SCH_EDIT_ONE_FIELD dlg( m_frame, title, aField );
|
||||||
|
|
||||||
// The dialog may invoke a kiway player for footprint fields
|
#ifdef __WXMAC__
|
||||||
// so we must use a quasimodal
|
// This dialog, like no other that we currently know of, sometimes provokes Apple's
|
||||||
|
// "[NSAlert runModal] may not be invoked inside of transaction begin/commit pair"
|
||||||
|
// bug, and these seem to prevent it. Don't ask.
|
||||||
|
// Note: this doesn't seem to have anything to do with it being a quasi-modal: the
|
||||||
|
// bug happens even if it's changed to a normal modal.
|
||||||
|
wxSafeYield(); // Apple: strike 1
|
||||||
|
wxSafeYield(); // Apple: strike 2
|
||||||
|
wxSafeYield(); // Apple: strike 3; you're out
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// The footprint field dialog can invoke a KIWAY_PLAYER so we must use a quasi-modal
|
||||||
if( dlg.ShowQuasiModal() != wxID_OK )
|
if( dlg.ShowQuasiModal() != wxID_OK )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue