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:
@@ -1665,15 +1665,19 @@ bool wxWindowMac::DoPopupMenu(wxMenu *menu, int x, int y)
|
|||||||
long menuResult = ::PopUpMenuSelect((MenuHandle) menu->GetHMenu() , y, x, 0) ;
|
long menuResult = ::PopUpMenuSelect((MenuHandle) menu->GetHMenu() , y, x, 0) ;
|
||||||
if ( HiWord(menuResult) != 0 )
|
if ( HiWord(menuResult) != 0 )
|
||||||
{
|
{
|
||||||
MenuCommand id ;
|
MenuCommand macid;
|
||||||
GetMenuItemCommandID( GetMenuHandle(HiWord(menuResult)) , LoWord(menuResult) , &id ) ;
|
GetMenuItemCommandID( GetMenuHandle(HiWord(menuResult)) , LoWord(menuResult) , &macid );
|
||||||
|
int id = wxMacCommandToId( macid );
|
||||||
wxMenuItem* item = NULL ;
|
wxMenuItem* item = NULL ;
|
||||||
wxMenu* realmenu ;
|
wxMenu* realmenu ;
|
||||||
item = menu->FindItem( id, &realmenu ) ;
|
item = menu->FindItem( id, &realmenu ) ;
|
||||||
if (item->IsCheckable())
|
if ( item )
|
||||||
item->Check( !item->IsChecked() ) ;
|
{
|
||||||
|
if (item->IsCheckable())
|
||||||
|
item->Check( !item->IsChecked() ) ;
|
||||||
|
|
||||||
menu->SendEvent( id , item->IsCheckable() ? item->IsChecked() : -1 ) ;
|
menu->SendEvent( id , item->IsCheckable() ? item->IsChecked() : -1 ) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
menu->MacAfterDisplay( true ) ;
|
menu->MacAfterDisplay( true ) ;
|
||||||
|
Reference in New Issue
Block a user