Generalize OSX &Cancel fix to work for other languages.
Fixes: lp:1784350 * https://bugs.launchpad.net/kicad/+bug/1784350
This commit is contained in:
parent
4e3c84e733
commit
98849bde96
|
@ -262,13 +262,18 @@ static void fixOSXCancelButtonIssue( wxWindow *aWindow )
|
||||||
// copying the text if a button with wxID_CANCEL is used in a
|
// copying the text if a button with wxID_CANCEL is used in a
|
||||||
// wxStdDialogButtonSizer created by wxFormBuilder: the label is &Cancel, and
|
// wxStdDialogButtonSizer created by wxFormBuilder: the label is &Cancel, and
|
||||||
// this accelerator key has priority over the standard copy accelerator.
|
// this accelerator key has priority over the standard copy accelerator.
|
||||||
|
// Note: problem also exists in other languages; for instance cmd+a closes
|
||||||
|
// dialogs in German because the button is &Abbrechen.
|
||||||
wxButton* button = dynamic_cast<wxButton*>( wxWindow::FindWindowById( wxID_CANCEL, aWindow ) );
|
wxButton* button = dynamic_cast<wxButton*>( wxWindow::FindWindowById( wxID_CANCEL, aWindow ) );
|
||||||
|
|
||||||
if( button )
|
if( button )
|
||||||
{
|
{
|
||||||
|
static const wxString placeholder = wxT( "{amp}" );
|
||||||
|
|
||||||
wxString buttonLabel = button->GetLabel();
|
wxString buttonLabel = button->GetLabel();
|
||||||
buttonLabel.Replace( wxT( "&C" ), wxT( "C" ) );
|
buttonLabel.Replace( wxT( "&&" ), placeholder );
|
||||||
buttonLabel.Replace( wxT( "&c" ), wxT( "c" ) );
|
buttonLabel.Replace( wxT( "&" ), wxEmptyString );
|
||||||
|
buttonLabel.Replace( placeholder, wxT( "&" ) );
|
||||||
button->SetLabel( buttonLabel );
|
button->SetLabel( buttonLabel );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue