microwave tools: use ShowQuasiModal instead of ShowModal to display WX_TEXT_ENTRY_DIALOG dlgs

In some cases ShowModal does not work fine with our events handlers, at least on Windows.
Fixes #7641
https://gitlab.com/kicad/code/kicad/issues/7641
This commit is contained in:
jean-pierre charras 2021-02-21 16:01:36 +01:00
parent d96577932d
commit fbf12cb85c
2 changed files with 4 additions and 4 deletions

View File

@ -77,7 +77,7 @@ FOOTPRINT* MICROWAVE_TOOL::createFootprint( MICROWAVE_FOOTPRINT_SHAPE aFootprint
wxString value = StringFromValue( editFrame.GetUserUnits(), gap_size ); wxString value = StringFromValue( editFrame.GetUserUnits(), gap_size );
WX_TEXT_ENTRY_DIALOG dlg( &editFrame, msg, _( "Create microwave footprint" ), value ); WX_TEXT_ENTRY_DIALOG dlg( &editFrame, msg, _( "Create microwave footprint" ), value );
if( dlg.ShowModal() != wxID_OK ) if( dlg.ShowQuasiModal() != wxID_OK )
return NULL; // cancelled by user return NULL; // cancelled by user
value = dlg.GetValue(); value = dlg.GetValue();
@ -92,7 +92,7 @@ FOOTPRINT* MICROWAVE_TOOL::createFootprint( MICROWAVE_FOOTPRINT_SHAPE aFootprint
WX_TEXT_ENTRY_DIALOG angledlg( &editFrame, _( "Angle in degrees:" ), WX_TEXT_ENTRY_DIALOG angledlg( &editFrame, _( "Angle in degrees:" ),
_( "Create microwave footprint" ), msg ); _( "Create microwave footprint" ), msg );
if( angledlg.ShowModal() != wxID_OK ) if( angledlg.ShowQuasiModal() != wxID_OK )
return NULL; // cancelled by user return NULL; // cancelled by user
msg = angledlg.GetValue(); msg = angledlg.GetValue();

View File

@ -372,7 +372,7 @@ FOOTPRINT* MICROWAVE_TOOL::createMicrowaveInductor( MICROWAVE_INDUCTOR_PATTERN&
msg = StringFromValue( editFrame.GetUserUnits(), aInductorPattern.m_Length ); msg = StringFromValue( editFrame.GetUserUnits(), aInductorPattern.m_Length );
WX_TEXT_ENTRY_DIALOG dlg( &editFrame, _( "Length of Trace:" ), wxEmptyString, msg ); WX_TEXT_ENTRY_DIALOG dlg( &editFrame, _( "Length of Trace:" ), wxEmptyString, msg );
if( dlg.ShowModal() != wxID_OK ) if( dlg.ShowQuasiModal() != wxID_OK )
return nullptr; // canceled by user return nullptr; // canceled by user
msg = dlg.GetValue(); msg = dlg.GetValue();
@ -410,7 +410,7 @@ FOOTPRINT* MICROWAVE_TOOL::createMicrowaveInductor( MICROWAVE_INDUCTOR_PATTERN&
WX_TEXT_ENTRY_DIALOG cmpdlg( &editFrame, _( "Component Value:" ), wxEmptyString, msg ); WX_TEXT_ENTRY_DIALOG cmpdlg( &editFrame, _( "Component Value:" ), wxEmptyString, msg );
cmpdlg.SetTextValidator( FOOTPRINT_NAME_VALIDATOR( &msg ) ); cmpdlg.SetTextValidator( FOOTPRINT_NAME_VALIDATOR( &msg ) );
if( ( cmpdlg.ShowModal() != wxID_OK ) || msg.IsEmpty() ) if( ( cmpdlg.ShowQuasiModal() != wxID_OK ) || msg.IsEmpty() )
return nullptr; // Aborted by user return nullptr; // Aborted by user
FOOTPRINT* footprint = editFrame.CreateNewFootprint( msg ); FOOTPRINT* footprint = editFrame.CreateNewFootprint( msg );