I just a bit played with the code and found that uncommenting the last line in function BrowseSelector::Create enables BrowseTracker to function properly:
- //?m_listBox->SetFocus();
+ m_listBox->SetFocus();
It seems that some developer had this problem and solved it earlier. Can someone try it?
I too have tried this change. It helps a little bit, but I still get freezes in both Find-in-files dlg and BrowseSelector dig.
The symptoms are: the main window always gets the focus when the freeze occurs, but any mouse click causes the focus to shift to the correct dialog item.
There are complaints about this problem to wxWidgets going back 8 years. A fix from wxWidgets solves that particular problem but not all.
I have found this problem as far back as wx2.8.12 (the oldest CB in my archive).
It seems to be related to the delayed focus method used in wxWidgets and the failure of some wxEventFocus handler to event.Skip() either EVT_Set_FOCUS, EVT_KILL_FOCUS or wxIdle event.
I've viewed all event handlers in CB for that problem and have not found it in either the core or the plugins that I use.
I'm still looking.