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" );
|
hotkey << wxT("Delete" );
|
||||||
break;
|
break;
|
||||||
case WXK_UP:
|
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;
|
break;
|
||||||
case WXK_DOWN:
|
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;
|
break;
|
||||||
case WXK_PAGEUP:
|
case WXK_PAGEUP:
|
||||||
hotkey << wxT("Page_Up" );
|
hotkey << wxT("Page_Up" );
|
||||||
@@ -1070,12 +1088,6 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
|
|||||||
case WXK_PAGEDOWN:
|
case WXK_PAGEDOWN:
|
||||||
hotkey << wxT("Page_Down" );
|
hotkey << wxT("Page_Down" );
|
||||||
break;
|
break;
|
||||||
case WXK_LEFT:
|
|
||||||
hotkey << wxT("Left" );
|
|
||||||
break;
|
|
||||||
case WXK_RIGHT:
|
|
||||||
hotkey << wxT("Right" );
|
|
||||||
break;
|
|
||||||
case WXK_HOME:
|
case WXK_HOME:
|
||||||
hotkey << wxT("Home" );
|
hotkey << wxT("Home" );
|
||||||
break;
|
break;
|
||||||
@@ -1121,9 +1133,6 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
|
|||||||
case WXK_HELP:
|
case WXK_HELP:
|
||||||
hotkey << wxT("Help" );
|
hotkey << wxT("Help" );
|
||||||
break;
|
break;
|
||||||
case WXK_NUMLOCK:
|
|
||||||
hotkey << wxT("Num_Lock" );
|
|
||||||
break;
|
|
||||||
case WXK_NUMPAD_INSERT:
|
case WXK_NUMPAD_INSERT:
|
||||||
hotkey << wxT("KP_Insert" );
|
hotkey << wxT("KP_Insert" );
|
||||||
break;
|
break;
|
||||||
@@ -1133,9 +1142,6 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
|
|||||||
case WXK_NUMPAD_SPACE:
|
case WXK_NUMPAD_SPACE:
|
||||||
hotkey << wxT("KP_Space" );
|
hotkey << wxT("KP_Space" );
|
||||||
break;
|
break;
|
||||||
case WXK_NUMPAD_TAB:
|
|
||||||
hotkey << wxT("KP_Tab" );
|
|
||||||
break;
|
|
||||||
case WXK_NUMPAD_ENTER:
|
case WXK_NUMPAD_ENTER:
|
||||||
hotkey << wxT("KP_Enter" );
|
hotkey << wxT("KP_Enter" );
|
||||||
break;
|
break;
|
||||||
@@ -1146,17 +1152,29 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
|
|||||||
case WXK_NUMPAD_HOME:
|
case WXK_NUMPAD_HOME:
|
||||||
hotkey << wxT("KP_Home" );
|
hotkey << wxT("KP_Home" );
|
||||||
break;
|
break;
|
||||||
case WXK_NUMPAD_LEFT:
|
|
||||||
hotkey << wxT("KP_Left" );
|
|
||||||
break;
|
|
||||||
case WXK_NUMPAD_UP:
|
case WXK_NUMPAD_UP:
|
||||||
hotkey << wxT("KP_Up" );
|
if( flags )
|
||||||
break;
|
hotkey << wxT("KP_Up" );
|
||||||
case WXK_NUMPAD_RIGHT:
|
else
|
||||||
hotkey << wxT("KP_Right" );
|
wxFAIL_MSG( wxT("The KP_Up key must have modifiers to be an accelerator key") );
|
||||||
break;
|
break;
|
||||||
case WXK_NUMPAD_DOWN:
|
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;
|
break;
|
||||||
case WXK_NUMPAD_PAGEUP:
|
case WXK_NUMPAD_PAGEUP:
|
||||||
hotkey << wxT("KP_Page_Up" );
|
hotkey << wxT("KP_Page_Up" );
|
||||||
@@ -1197,12 +1215,6 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
|
|||||||
case WXK_NUMPAD9:
|
case WXK_NUMPAD9:
|
||||||
hotkey += wxString::Format(wxT("KP_%d"), code - WXK_NUMPAD0);
|
hotkey += wxString::Format(wxT("KP_%d"), code - WXK_NUMPAD0);
|
||||||
break;
|
break;
|
||||||
case WXK_WINDOWS_LEFT:
|
|
||||||
hotkey << wxT("Super_L" );
|
|
||||||
break;
|
|
||||||
case WXK_WINDOWS_RIGHT:
|
|
||||||
hotkey << wxT("Super_R" );
|
|
||||||
break;
|
|
||||||
case WXK_WINDOWS_MENU:
|
case WXK_WINDOWS_MENU:
|
||||||
hotkey << wxT("Menu" );
|
hotkey << wxT("Menu" );
|
||||||
break;
|
break;
|
||||||
@@ -1210,13 +1222,19 @@ static wxString GetGtkHotKey( const wxMenuItem& item )
|
|||||||
/*
|
/*
|
||||||
The following keycodes have been shown not to work as accelerator
|
The following keycodes have been shown not to work as accelerator
|
||||||
keys on GTK (see https://trac.wxwidgets.org/ticket/10049)
|
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_COMMAND: // Same as WXK_CONTROL
|
||||||
case WXK_SCROLL: // Scroll lock
|
|
||||||
case WXK_CAPITAL: // Caps lock
|
|
||||||
case WXK_TAB:
|
|
||||||
case WXK_SHIFT:
|
case WXK_SHIFT:
|
||||||
case WXK_ALT:
|
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,
|
The following keycodes do not map clearly into a GTK keycode,
|
||||||
|
@@ -693,12 +693,12 @@ namespace
|
|||||||
{ WXK_EXECUTE, "WXK_EXECUTE", false },
|
{ WXK_EXECUTE, "WXK_EXECUTE", false },
|
||||||
{ WXK_SNAPSHOT, "WXK_SNAPSHOT", true },
|
{ WXK_SNAPSHOT, "WXK_SNAPSHOT", true },
|
||||||
{ WXK_HELP, "WXK_HELP", false },
|
{ WXK_HELP, "WXK_HELP", false },
|
||||||
{ WXK_NUMLOCK, "WXK_NUMLOCK", false },
|
{ WXK_NUMLOCK, "WXK_NUMLOCK", true },
|
||||||
{ WXK_SCROLL, "WXK_SCROLL", true },
|
{ WXK_SCROLL, "WXK_SCROLL", true },
|
||||||
{ WXK_NUMPAD_INSERT, "WXK_NUMPAD_INSERT", false },
|
{ WXK_NUMPAD_INSERT, "WXK_NUMPAD_INSERT", false },
|
||||||
{ WXK_NUMPAD_DELETE, "WXK_NUMPAD_DELETE", false },
|
{ WXK_NUMPAD_DELETE, "WXK_NUMPAD_DELETE", false },
|
||||||
{ WXK_NUMPAD_SPACE, "WXK_NUMPAD_SPACE", 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_ENTER, "WXK_NUMPAD_ENTER", false },
|
||||||
{ WXK_NUMPAD_F1, "WXK_NUMPAD_F1", false },
|
{ WXK_NUMPAD_F1, "WXK_NUMPAD_F1", false },
|
||||||
{ WXK_NUMPAD_F2, "WXK_NUMPAD_F2", false },
|
{ WXK_NUMPAD_F2, "WXK_NUMPAD_F2", false },
|
||||||
@@ -730,8 +730,8 @@ namespace
|
|||||||
{ WXK_NUMPAD7, "WXK_NUMPAD7", false },
|
{ WXK_NUMPAD7, "WXK_NUMPAD7", false },
|
||||||
{ WXK_NUMPAD8, "WXK_NUMPAD8", false },
|
{ WXK_NUMPAD8, "WXK_NUMPAD8", false },
|
||||||
{ WXK_NUMPAD9, "WXK_NUMPAD9", false },
|
{ WXK_NUMPAD9, "WXK_NUMPAD9", false },
|
||||||
{ WXK_WINDOWS_LEFT, "WXK_WINDOWS_LEFT", false },
|
{ WXK_WINDOWS_LEFT, "WXK_WINDOWS_LEFT", true },
|
||||||
{ WXK_WINDOWS_RIGHT, "WXK_WINDOWS_RIGHT", false },
|
{ WXK_WINDOWS_RIGHT, "WXK_WINDOWS_RIGHT", true },
|
||||||
{ WXK_WINDOWS_MENU, "WXK_WINDOWS_MENU", false },
|
{ WXK_WINDOWS_MENU, "WXK_WINDOWS_MENU", false },
|
||||||
{ WXK_COMMAND, "WXK_COMMAND", true }
|
{ WXK_COMMAND, "WXK_COMMAND", true }
|
||||||
};
|
};
|
||||||
@@ -767,7 +767,7 @@ TEST_CASE( "wxMenuItemAccelEntry", "[menu][accelentry]" )
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
INFO( wxString::Format( "Keycode: %s", key.name ) );
|
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 );
|
item->SetAccel( &accelEntry );
|
||||||
|
|
||||||
wxString labelText = item->GetItemLabel();
|
wxString labelText = item->GetItemLabel();
|
||||||
|
Reference in New Issue
Block a user