Use accelerators from hot keys in place menu, from the Fabrizio's idea

This commit is contained in:
jean-pierre charras 2011-09-24 19:15:29 +02:00
parent 2d761f302b
commit 063c56be30
1 changed files with 8 additions and 5 deletions

View File

@ -179,17 +179,20 @@ wxString ReturnKeyNameFromKeyCode( int aKeycode, bool* aIsFound )
* for instance zoom action is ran from the F1 key or the Zoom menu. * for instance zoom action is ran from the F1 key or the Zoom menu.
* a zoom uses the mouse position from a hot key and not from the menu * a zoom uses the mouse position from a hot key and not from the menu
* In this case, the accelerator if Shift+<hotkey> * In this case, the accelerator if Shift+<hotkey>
* But for some keys, the Shift modifier is not usable, and the accelerator is Alt+<hotkey> * But for many keys, the Shift modifier is not usable, and the accelerator is Alt+<hotkey>
*/ */
static void AddModifierToKey( wxString& aFullKey, const wxString & aKey ) static void AddModifierToKey( wxString& aFullKey, const wxString & aKey )
{ {
#if 1 // set to 0 for new behavior, 1 for old #if 0 // set to 0 for new behavior, 1 for old
aFullKey << wxT( " <" ) << aKey << wxT( ">" ); aFullKey << wxT( " <" ) << aKey << wxT( ">" );
#else #else
if( aKey.IsSameAs(wxT( "/" ) ) ) if( (aKey.Length() == 1) && (aKey[0] >= 'A') && (aKey[0] <= 'Z'))
aFullKey << wxT( "\t" ) << MODIFIER_ALT << aKey; // We can use Shift+<key> as accelerator ans <key> for hot key
else
aFullKey << wxT( "\t" ) << MODIFIER_SHIFT << aKey; aFullKey << wxT( "\t" ) << MODIFIER_SHIFT << aKey;
else
// We must use Alt+<key> as accelerator ans <key> for hot key
aFullKey << wxT( "\t" ) << MODIFIER_ALT << aKey;
#endif #endif
} }