← Back to team overview

kicad-developers team mailing list archive

PATCH: OS X copy/close bug fix

 

Another little OS X fix.  Most, though not all, of the dialogs in KiCad that have cancel buttons break copy of text on OS X.  If you highlight text (for example, the net of a pad, an operation I find myself doing fairly often) and hit 'Command-C', the dialog is closed and the text is not copied.  Command-C is not ever used in this way under OS X, it should and is always intended to copy whatever is selected.

The problem stems from how many of the dialogues in KiCad are declaring their cancel buttons.  If one declares a button with this constructor: 

wxButton( this, wxID_CANCEL )

then the default name is filled in, which is "&Cancel".  The & is what makes a button have a keyboard shortcut with the directly following letter (C) in windows, but wx translates this to command-<letter> on OS X.  This means any button with the name "&C****> will break copy and paste on OS X and simply trigger the button event stead.  

I went through and fixed *every single button* in Kicad, such that the code/behavior is completely unchanged on other platforms, but if __APPLE__ is defined, it will explicitly name the button "Cancel" or "Close" as opposed to "&Cancel" or "&Close" (both the automatic fill-ins if not specified).  It's not pretty, but the only other option I can see is remove the keyboard shortcut for the cancel and close buttons entirely, or at least change them to a different letter, but that could potentially break other people's workflows.  

Here's the patch!

Attachment: close.patch
Description: Binary data


-- 
"Violence is the last refuge of the incompetent." - Isaac Asimov


Follow ups