X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d65c269b3f665e15a8ae1b8fff063b2ec0ef19a7..904a2463aaf4f29e3b8f96436aefb7528aebe397:/src/common/menucmn.cpp diff --git a/src/common/menucmn.cpp b/src/common/menucmn.cpp index ee97f56614..707646dfa7 100644 --- a/src/common/menucmn.cpp +++ b/src/common/menucmn.cpp @@ -132,7 +132,13 @@ wxAcceleratorEntry *wxGetAccelFromString(const wxString& label) else { if ( current.Len() == 1 ) { // it's a letter - keyCode = wxToupper(current[0U]); + keyCode = current[0U]; + + // Only call wxToupper if control, alt, or shift is held down, + // otherwise lower case accelerators won't work. + if (accelFlags != wxACCEL_NORMAL) { + keyCode = wxToupper(keyCode); + } } else { // is it a function key? @@ -159,14 +165,39 @@ wxAcceleratorEntry *wxGetAccelFromString(const wxString& label) else if ( current == wxT("INSERT") ) { keyCode = WXK_INSERT; } -#if 0 + else if ( current == wxT("ENTER") || current == wxT("RETURN") ) { + keyCode = WXK_RETURN; + } else if ( current == wxT("PGUP") ) { - keyCode = VK_PRIOR; + keyCode = WXK_PRIOR; } else if ( current == wxT("PGDN") ) { - keyCode = VK_NEXT; + keyCode = WXK_NEXT; + } + else if ( current == wxT("LEFT") ) { + keyCode = WXK_LEFT; + } + else if ( current == wxT("RIGHT") ) { + keyCode = WXK_RIGHT; + } + else if ( current == wxT("UP") ) { + keyCode = WXK_UP; + } + else if ( current == wxT("DOWN") ) { + keyCode = WXK_DOWN; + } + else if ( current == wxT("HOME") ) { + keyCode = WXK_HOME; + } + else if ( current == wxT("END") ) { + keyCode = WXK_END; + } + else if ( current == wxT("SPACE") ) { + keyCode = WXK_SPACE; + } + else if ( current == wxT("TAB") ) { + keyCode = WXK_TAB; } -#endif else { wxLogDebug(wxT("Unrecognized accel key '%s', accel string ignored."), @@ -789,7 +820,7 @@ int wxMenuBarBase::FindMenu(const wxString& title) const (wxMenuItem::GetLabelFromText(title2) == label) ) { // found - return (int)i; + return (int)i; } }