Hi folks.
I'm trying to go from C::B 16.01 (wxWidget 2.8.x) to CB::20.03 and I'm using some keyboard accelerators on my Germany keyboard (e.g. Alt-ä) that do not work with the current official CB::20.03.
I compiled my own version (from svn tag 20.03, so the same as delivered as binary) using wxWidget 3.0.5 and now I figured out that this bug is caused due to a change in wxWidget's file accelcmn.cpp. The keycode is now compared to 128. If it's below that value everything works as it did before.
The special key "ö" has a keycode of (I guess it was) 214. So in the following the comparisons are not done as a single character but as a string (for keycodes above 127). The accelerator for special keys >= 193 (WXK_SPECIAL1) should be named "SPECIAL1", etc. Thus the accelerator key string has to be "alt-SPECIAL11" instead of "alt-ö" or so. For display purpose it's not a good idea to display e.g. alt-SPECIAL11 in the menu where the accelerator points to.
Calling wxAcceleratorEntry::Create delivers a NULL pointer when trying to add an entry containing such an accelerator (Alt-ä, Alt-ö, ..). This call can be found twice in clKeyboardManager.
I just found out that the code for Alt-ö or even Alt-Ö do not work. Their keycode would be greater than SPECIAL20 which is the last one defined in wxWidget.
I'm not sure where this has to be considered but handling for special key codes like WXK_NUMPAD can be found in numerous files.
Hopefully someone can find an easy patch for this.
Kind regards
ChristophMS
P.S.: Sorry for that confused text above. I was writing/debugging and testing in parallel :-)
If you are using Windows can you try the latest nightly builds available from the following:
https://forums.codeblocks.org/index.php/topic,24545.0.html
If you are using Linux can you please supply details of the Linux variant and version.
Post on this ticket how you go.