do allow calling Hide() on the window before it is created
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60699 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -2824,28 +2824,39 @@ void wxWindowGTK::DoScreenToClient( int *x, int *y ) const
|
|||||||
|
|
||||||
bool wxWindowGTK::Show( bool show )
|
bool wxWindowGTK::Show( bool show )
|
||||||
{
|
{
|
||||||
wxCHECK_MSG( (m_widget != NULL), false, wxT("invalid window") );
|
if ( !wxWindowBase::Show(show) )
|
||||||
|
|
||||||
if (!wxWindowBase::Show(show))
|
|
||||||
{
|
{
|
||||||
// nothing to do
|
// nothing to do
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (show && m_showOnIdle)
|
// notice that we may call Hide() before the window is created and this is
|
||||||
|
// actually useful to create it hidden initially -- but we can't call
|
||||||
|
// Show() before it is created
|
||||||
|
if ( !m_widget )
|
||||||
{
|
{
|
||||||
// deferred
|
wxASSERT_MSG( !show, "can't show invalid window" );
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if ( show )
|
||||||
{
|
{
|
||||||
if (show)
|
if ( m_showOnIdle )
|
||||||
gtk_widget_show(m_widget);
|
{
|
||||||
else
|
// defer until later
|
||||||
gtk_widget_hide(m_widget);
|
return true;
|
||||||
wxShowEvent eventShow(GetId(), show);
|
}
|
||||||
eventShow.SetEventObject(this);
|
|
||||||
HandleWindowEvent(eventShow);
|
gtk_widget_show(m_widget);
|
||||||
}
|
}
|
||||||
|
else // hide
|
||||||
|
{
|
||||||
|
gtk_widget_hide(m_widget);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxShowEvent eventShow(GetId(), show);
|
||||||
|
eventShow.SetEventObject(this);
|
||||||
|
HandleWindowEvent(eventShow);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user