In wxPopupFocusHandler, watch for EVT_CHAR, not EVT_KEY_DOWN.

We should close the popup only if neither of these events was processed;
previously, EVT_CHAR would never reach the popup in open state, as it
would be closed automatically.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63859 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík 2010-04-05 17:18:41 +00:00
parent 88695e9ab8
commit ffe42ca627

View File

@ -86,7 +86,7 @@ public:
protected:
void OnKillFocus(wxFocusEvent& event);
void OnKeyDown(wxKeyEvent& event);
void OnChar(wxKeyEvent& event);
private:
wxPopupTransientWindow *m_popup;
@ -105,7 +105,7 @@ END_EVENT_TABLE()
BEGIN_EVENT_TABLE(wxPopupFocusHandler, wxEvtHandler)
EVT_KILL_FOCUS(wxPopupFocusHandler::OnKillFocus)
EVT_KEY_DOWN(wxPopupFocusHandler::OnKeyDown)
EVT_CHAR(wxPopupFocusHandler::OnChar)
END_EVENT_TABLE()
BEGIN_EVENT_TABLE(wxPopupTransientWindow, wxPopupWindow)
@ -600,7 +600,7 @@ void wxPopupFocusHandler::OnKillFocus(wxFocusEvent& event)
m_popup->DismissAndNotify();
}
void wxPopupFocusHandler::OnKeyDown(wxKeyEvent& event)
void wxPopupFocusHandler::OnChar(wxKeyEvent& event)
{
// we can be associated with the popup itself in which case we should avoid
// infinite recursion