Corrected event routing/id change bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -300,6 +300,9 @@ wxMacListCtrlEventDelegate::wxMacListCtrlEventDelegate( wxListCtrl* list, int id
|
||||
|
||||
bool wxMacListCtrlEventDelegate::ProcessEvent( wxEvent& event )
|
||||
{
|
||||
int id = event.GetId();
|
||||
wxObject* obj = event.GetEventObject();
|
||||
|
||||
// even though we use a generic list ctrl underneath, make sure
|
||||
// we present ourselves as wxListCtrl.
|
||||
event.SetEventObject( m_list );
|
||||
@@ -307,10 +310,20 @@ bool wxMacListCtrlEventDelegate::ProcessEvent( wxEvent& event )
|
||||
|
||||
if ( !event.IsKindOf( CLASSINFO( wxCommandEvent ) ) )
|
||||
{
|
||||
if (m_list->HandleWindowEvent( event ))
|
||||
if (m_list->GetEventHandler()->ProcessEvent( event ))
|
||||
{
|
||||
event.SetId(id);
|
||||
event.SetEventObject(obj);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return wxEvtHandler::ProcessEvent(event);
|
||||
// Also try with the original id
|
||||
bool success = wxEvtHandler::ProcessEvent(event);
|
||||
event.SetId(id);
|
||||
event.SetEventObject(obj);
|
||||
if (!success && id != m_id)
|
||||
success = wxEvtHandler::ProcessEvent(event);
|
||||
return success;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user