Fixed KIDIALOG freeze

wxDialog calls Show(false) when the dialog is about to be closed, but
KIDIALOG::Show() implementation did not forward the show parameter to
wxRichMessageDialog::Show() invocation. As the parameter was not
specified, the mentioned Show() call always used 'true' as the default
parameter, preventing the dialog from being closed.

Fixes: lp:1782999
* https://bugs.launchpad.net/kicad/+bug/1782999
This commit is contained in:
Maciej Suminski 2018-07-25 11:45:20 +02:00
parent 6df2d69b6e
commit 39d8d143d6
1 changed files with 9 additions and 5 deletions

View File

@ -72,13 +72,17 @@ void KIDIALOG::ForceShowAgain()
bool KIDIALOG::Show( bool aShow ) bool KIDIALOG::Show( bool aShow )
{ {
// Check if this dialog should be shown to the user // We should check the do-not-show-again setting only when the dialog is displayed
auto it = doNotShowAgainDlgs.find( m_hash ); if( aShow )
{
// Check if this dialog should be shown to the user
auto it = doNotShowAgainDlgs.find( m_hash );
if( it != doNotShowAgainDlgs.end() ) if( it != doNotShowAgainDlgs.end() )
return it->second; return it->second;
}
bool ret = wxRichMessageDialog::Show(); bool ret = wxRichMessageDialog::Show( aShow );
// Has the user asked not to show the dialog again // Has the user asked not to show the dialog again
if( IsCheckBoxChecked() ) if( IsCheckBoxChecked() )