Don't use dangling pointers in wxWindowMSW::HandleMenuChar().
We used a pointer into the result of wx_str() for a temporary string which was clearly wrong. Store the string we're manipulating to ensure that this doesn't happen. This in particular fixes keyboard navigation in the menus with owner-drawn items. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -5724,7 +5724,8 @@ int wxWindowMSW::HandleMenuChar(int WXUNUSED_IN_WINCE(chAccel),
|
|||||||
// menu creation code
|
// menu creation code
|
||||||
wxMenuItem *item = (wxMenuItem*)mii.dwItemData;
|
wxMenuItem *item = (wxMenuItem*)mii.dwItemData;
|
||||||
|
|
||||||
const wxChar *p = wxStrchr(item->GetItemLabel().wx_str(), wxT('&'));
|
const wxString label(item->GetItemLabel());
|
||||||
|
const wxChar *p = wxStrchr(label.wx_str(), wxT('&'));
|
||||||
while ( p++ )
|
while ( p++ )
|
||||||
{
|
{
|
||||||
if ( *p == wxT('&') )
|
if ( *p == wxT('&') )
|
||||||
|
Reference in New Issue
Block a user