try (this can be vetoed) to set focus to the listbox before generating the events (patch 1822109)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49593 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -483,9 +483,19 @@ void wxCheckListBox::OnLeftClick(wxMouseEvent& event)
|
|||||||
|
|
||||||
if ( nItem != wxNOT_FOUND )
|
if ( nItem != wxNOT_FOUND )
|
||||||
{
|
{
|
||||||
wxCheckListBoxItem *item = GetItem(nItem);
|
// people expect to get "kill focus" event for the currently
|
||||||
item->Toggle();
|
// focused control before getting events from the other controls
|
||||||
item->SendEvent();
|
// and, equally importantly, they may prevent the focus change from
|
||||||
|
// taking place at all (e.g. because the old control contents is
|
||||||
|
// invalid and needs to be corrected) in which case we shouldn't
|
||||||
|
// generate this event at all
|
||||||
|
SetFocus();
|
||||||
|
if ( FindFocus() == this )
|
||||||
|
{
|
||||||
|
wxCheckListBoxItem *item = GetItem(nItem);
|
||||||
|
item->Toggle();
|
||||||
|
item->SendEvent();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//else: it's not an error, just click outside of client zone
|
//else: it's not an error, just click outside of client zone
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user