Mark more keys as being invalid for GTK accelerator keys

This commit is contained in:
Ian McInerney
2019-08-04 21:46:27 +02:00
parent a8af0c27af
commit 1eea919f13
2 changed files with 54 additions and 36 deletions

View File

@@ -1059,10 +1059,28 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
hotkey << wxT("Delete" );
break;
case WXK_UP:
hotkey << wxT("Up" );
if( flags )
hotkey << wxT("Up" );
else
wxFAIL_MSG( wxT("The Up key must have modifiers to be an accelerator key") );
break;
case WXK_DOWN:
hotkey << wxT("Down" );
if( flags )
hotkey << wxT("Down" );
else
wxFAIL_MSG( wxT("The Down key must have modifiers to be an accelerator key") );
break;
case WXK_LEFT:
if( flags )
hotkey << wxT("Left" );
else
wxFAIL_MSG( wxT("The Left key must have modifiers to be an accelerator key") );
break;
case WXK_RIGHT:
if( flags )
hotkey << wxT("Right" );
else
wxFAIL_MSG( wxT("The Right key must have modifiers to be an accelerator key") );
break;
case WXK_PAGEUP:
hotkey << wxT("Page_Up" );
@@ -1070,12 +1088,6 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
case WXK_PAGEDOWN:
hotkey << wxT("Page_Down" );
break;
case WXK_LEFT:
hotkey << wxT("Left" );
break;
case WXK_RIGHT:
hotkey << wxT("Right" );
break;
case WXK_HOME:
hotkey << wxT("Home" );
break;
@@ -1121,9 +1133,6 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
case WXK_HELP:
hotkey << wxT("Help" );
break;
case WXK_NUMLOCK:
hotkey << wxT("Num_Lock" );
break;
case WXK_NUMPAD_INSERT:
hotkey << wxT("KP_Insert" );
break;
@@ -1133,9 +1142,6 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
case WXK_NUMPAD_SPACE:
hotkey << wxT("KP_Space" );
break;
case WXK_NUMPAD_TAB:
hotkey << wxT("KP_Tab" );
break;
case WXK_NUMPAD_ENTER:
hotkey << wxT("KP_Enter" );
break;
@@ -1146,17 +1152,29 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
case WXK_NUMPAD_HOME:
hotkey << wxT("KP_Home" );
break;
case WXK_NUMPAD_LEFT:
hotkey << wxT("KP_Left" );
break;
case WXK_NUMPAD_UP:
hotkey << wxT("KP_Up" );
break;
case WXK_NUMPAD_RIGHT:
hotkey << wxT("KP_Right" );
if( flags )
hotkey << wxT("KP_Up" );
else
wxFAIL_MSG( wxT("The KP_Up key must have modifiers to be an accelerator key") );
break;
case WXK_NUMPAD_DOWN:
hotkey << wxT("KP_Down" );
if( flags )
hotkey << wxT("KP_Down" );
else
wxFAIL_MSG( wxT("The KP_Down key must have modifiers to be an accelerator key") );
break;
case WXK_NUMPAD_LEFT:
if( flags )
hotkey << wxT("KP_Left" );
else
wxFAIL_MSG( wxT("The KP_Left key must have modifiers to be an accelerator key") );
break;
case WXK_NUMPAD_RIGHT:
if( flags )
hotkey << wxT("KP_Right" );
else
wxFAIL_MSG( wxT("The KP_Right key must have modifiers to be an accelerator key") );
break;
case WXK_NUMPAD_PAGEUP:
hotkey << wxT("KP_Page_Up" );
@@ -1197,12 +1215,6 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
case WXK_NUMPAD9:
hotkey += wxString::Format(wxT("KP_%d"), code - WXK_NUMPAD0);
break;
case WXK_WINDOWS_LEFT:
hotkey << wxT("Super_L" );
break;
case WXK_WINDOWS_RIGHT:
hotkey << wxT("Super_R" );
break;
case WXK_WINDOWS_MENU:
hotkey << wxT("Menu" );
break;
@@ -1210,13 +1222,19 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
/*
The following keycodes have been shown not to work as accelerator
keys on GTK (see https://trac.wxwidgets.org/ticket/10049)
and are not valid
(see gtkaccelgroup.c inside gtk_accelerator_valid())
*/
case WXK_COMMAND: // Same as WXK_CONTROL
case WXK_SCROLL: // Scroll lock
case WXK_CAPITAL: // Caps lock
case WXK_TAB:
case WXK_SHIFT:
case WXK_ALT:
case WXK_SCROLL: // Scroll lock
case WXK_CAPITAL: // Caps lock
case WXK_NUMLOCK:
case WXK_NUMPAD_TAB:
case WXK_TAB:
case WXK_WINDOWS_LEFT:
case WXK_WINDOWS_RIGHT:
/*
The following keycodes do not map clearly into a GTK keycode,