In wxComboCtrlBase::DoShowPopup(), if the popup window is a generic TLW or a 'perfect' wxPopupWindow, then try to set focus to the popup control at the end of show
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64504 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -221,6 +221,26 @@ enum
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Returns true if given popup window type can be classified as perfect
|
||||||
|
// on this platform.
|
||||||
|
static inline bool IsPopupWinTypePerfect( wxByte popupWinType )
|
||||||
|
{
|
||||||
|
#if POPUPWIN_IS_PERFECT && TRANSIENT_POPUPWIN_IS_PERFECT
|
||||||
|
wxUnusedVar(popupWinType);
|
||||||
|
return true;
|
||||||
|
#else
|
||||||
|
return ( popupWinType == POPUPWIN_GENERICTLW
|
||||||
|
#if POPUPWIN_IS_PERFECT
|
||||||
|
|| popupWinType == POPUPWIN_WXPOPUPWINDOW
|
||||||
|
#endif
|
||||||
|
#if TRANSIENT_POPUPWIN_IS_PERFECT
|
||||||
|
|| popupWinType == POPUPWIN_WXPOPUPTRANSIENTWINDOW
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// ** TODO **
|
// ** TODO **
|
||||||
// * wxComboPopupWindow for external use (ie. replace old wxUniv wxPopupComboWindow)
|
// * wxComboPopupWindow for external use (ie. replace old wxUniv wxPopupComboWindow)
|
||||||
@@ -2288,6 +2308,13 @@ void wxComboCtrlBase::DoShowPopup( const wxRect& rect, int WXUNUSED(flags) )
|
|||||||
winPopup->Show();
|
winPopup->Show();
|
||||||
|
|
||||||
m_popupWinState = Visible;
|
m_popupWinState = Visible;
|
||||||
|
|
||||||
|
// If popup window was a generic top-level window, or the
|
||||||
|
// wxPopupWindow implemenation on this platform is classified as
|
||||||
|
// perfect, then we should be able to safely set focus to the popup
|
||||||
|
// control.
|
||||||
|
if ( IsPopupWinTypePerfect(m_popupWinType) )
|
||||||
|
m_popup->SetFocus();
|
||||||
}
|
}
|
||||||
else if ( IsPopupWindowState(Hidden) )
|
else if ( IsPopupWindowState(Hidden) )
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user