converting menu ids and safeguarding against missing menu items

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37195 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2006-01-28 12:28:56 +00:00
parent c137ddc91f
commit e8027adbb6

View File

@@ -1665,16 +1665,20 @@ bool wxWindowMac::DoPopupMenu(wxMenu *menu, int x, int y)
long menuResult = ::PopUpMenuSelect((MenuHandle) menu->GetHMenu() , y, x, 0) ;
if ( HiWord(menuResult) != 0 )
{
MenuCommand id ;
GetMenuItemCommandID( GetMenuHandle(HiWord(menuResult)) , LoWord(menuResult) , &id ) ;
MenuCommand macid;
GetMenuItemCommandID( GetMenuHandle(HiWord(menuResult)) , LoWord(menuResult) , &macid );
int id = wxMacCommandToId( macid );
wxMenuItem* item = NULL ;
wxMenu* realmenu ;
item = menu->FindItem( id, &realmenu ) ;
if ( item )
{
if (item->IsCheckable())
item->Check( !item->IsChecked() ) ;
menu->SendEvent( id , item->IsCheckable() ? item->IsChecked() : -1 ) ;
}
}
menu->MacAfterDisplay( true ) ;
menu->SetInvokingWindow( NULL );