- wxWindow* toplev = ::wxGetTopLevelParent( this );
- wxASSERT( toplev );
- ((wxComboFrameEventHandler*)m_toplevEvtHandler)->OnPopup();
- toplev->PushEventHandler( m_toplevEvtHandler );
+bool wxComboCtrlBase::AnimateShow( const wxRect& WXUNUSED(rect), int WXUNUSED(flags) )
+{
+ return true;
+}
+
+void wxComboCtrlBase::DoShowPopup( const wxRect& rect, int WXUNUSED(flags) )
+{
+ wxWindow* winPopup = m_winPopup;
+
+ if ( IsPopupWindowState(Animating) )
+ {
+ // Make sure the popup window is shown in the right position.
+ // Should not matter even if animation already did this.
+
+ // Some platforms (GTK) may like SetSize and Move to be separate
+ // (though the bug was probably fixed).
+ winPopup->SetSize( rect );
+
+ winPopup->Show();
+
+ m_popupWinState = Visible;