Mark more keys as being invalid for GTK accelerator keys
This commit is contained in:
@@ -1059,10 +1059,28 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
|
||||
hotkey << wxT("Delete" );
|
||||
break;
|
||||
case WXK_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:
|
||||
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:
|
||||
if( flags )
|
||||
hotkey << wxT("KP_Up" );
|
||||
break;
|
||||
case WXK_NUMPAD_RIGHT:
|
||||
hotkey << wxT("KP_Right" );
|
||||
else
|
||||
wxFAIL_MSG( wxT("The KP_Up key must have modifiers to be an accelerator key") );
|
||||
break;
|
||||
case WXK_NUMPAD_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,
|
||||
|
@@ -693,12 +693,12 @@ namespace
|
||||
{ WXK_EXECUTE, "WXK_EXECUTE", false },
|
||||
{ WXK_SNAPSHOT, "WXK_SNAPSHOT", true },
|
||||
{ WXK_HELP, "WXK_HELP", false },
|
||||
{ WXK_NUMLOCK, "WXK_NUMLOCK", false },
|
||||
{ WXK_NUMLOCK, "WXK_NUMLOCK", true },
|
||||
{ WXK_SCROLL, "WXK_SCROLL", true },
|
||||
{ WXK_NUMPAD_INSERT, "WXK_NUMPAD_INSERT", false },
|
||||
{ WXK_NUMPAD_DELETE, "WXK_NUMPAD_DELETE", false },
|
||||
{ WXK_NUMPAD_SPACE, "WXK_NUMPAD_SPACE", false },
|
||||
{ WXK_NUMPAD_TAB, "WXK_NUMPAD_TAB", false },
|
||||
{ WXK_NUMPAD_TAB, "WXK_NUMPAD_TAB", true },
|
||||
{ WXK_NUMPAD_ENTER, "WXK_NUMPAD_ENTER", false },
|
||||
{ WXK_NUMPAD_F1, "WXK_NUMPAD_F1", false },
|
||||
{ WXK_NUMPAD_F2, "WXK_NUMPAD_F2", false },
|
||||
@@ -730,8 +730,8 @@ namespace
|
||||
{ WXK_NUMPAD7, "WXK_NUMPAD7", false },
|
||||
{ WXK_NUMPAD8, "WXK_NUMPAD8", false },
|
||||
{ WXK_NUMPAD9, "WXK_NUMPAD9", false },
|
||||
{ WXK_WINDOWS_LEFT, "WXK_WINDOWS_LEFT", false },
|
||||
{ WXK_WINDOWS_RIGHT, "WXK_WINDOWS_RIGHT", false },
|
||||
{ WXK_WINDOWS_LEFT, "WXK_WINDOWS_LEFT", true },
|
||||
{ WXK_WINDOWS_RIGHT, "WXK_WINDOWS_RIGHT", true },
|
||||
{ WXK_WINDOWS_MENU, "WXK_WINDOWS_MENU", false },
|
||||
{ WXK_COMMAND, "WXK_COMMAND", true }
|
||||
};
|
||||
@@ -767,7 +767,7 @@ TEST_CASE( "wxMenuItemAccelEntry", "[menu][accelentry]" )
|
||||
continue;
|
||||
|
||||
INFO( wxString::Format( "Keycode: %s", key.name ) );
|
||||
wxAcceleratorEntry accelEntry( wxACCEL_NORMAL, key.keycode, wxID_ANY, item );
|
||||
wxAcceleratorEntry accelEntry( wxACCEL_CTRL, key.keycode, wxID_ANY, item );
|
||||
item->SetAccel( &accelEntry );
|
||||
|
||||
wxString labelText = item->GetItemLabel();
|
||||
|
Reference in New Issue
Block a user