Avoid a crash due to OnSize being called before initialisation

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@47330 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2007-07-11 08:32:10 +00:00
parent c6d2cc32d7
commit 06e3372526

View File

@@ -4188,6 +4188,7 @@ bool wxGrid::Create(wxWindow *parent, wxWindowID id,
Create();
SetInitialSize(size);
CalcDimensions();
return true;
}
@@ -4368,7 +4369,7 @@ bool wxGrid::SetTable( wxGridTableBase *table, bool takeOwnership,
// stop all processing
m_created = false;
if (m_table)
if (m_table)
{
m_table->SetView(0);
if( m_ownTable )
@@ -4406,7 +4407,7 @@ bool wxGrid::SetTable( wxGridTableBase *table, bool takeOwnership,
// original one current cell and selection regions
// might be invalid,
m_selectingKeyboard = wxGridNoCellCoords;
m_currentCellCoords =
m_currentCellCoords =
wxGridCellCoords(wxMin(m_numRows, m_currentCellCoords.GetRow()),
wxMin(m_numCols, m_currentCellCoords.GetCol()));
if (m_selectingTopLeft.GetRow() >= m_numRows ||
@@ -5974,7 +5975,7 @@ void wxGrid::ProcessGridCellMouseEvent( wxMouseEvent& event )
m_winCapture->CaptureMouse();
}
}
else if ( m_cursorMode == WXGRID_CURSOR_RESIZE_ROW )
{
@@ -6737,7 +6738,7 @@ int wxGrid::SendEvent( const wxEventType type,
pos.y += GetColLabelSize();
if ( mouseEv.GetEventObject() == GetGridColLabelWindow() )
pos.x += GetRowLabelSize();
wxGridEvent gridEvt( GetId(),
type,
this,
@@ -6905,8 +6906,11 @@ void wxGrid::Refresh(bool eraseb, const wxRect* rect)
void wxGrid::OnSize( wxSizeEvent& WXUNUSED(event) )
{
// update our children window positions and scrollbars
CalcDimensions();
if (m_targetWindow != this) // check whether initialisation has been done
{
// update our children window positions and scrollbars
CalcDimensions();
}
}
void wxGrid::OnKeyDown( wxKeyEvent& event )
@@ -6934,7 +6938,7 @@ void wxGrid::OnKeyDown( wxKeyEvent& event )
else if (event.GetKeyCode() == WXK_LEFT)
event.m_keyCode = WXK_RIGHT;
}
// try local handlers
switch ( event.GetKeyCode() )
{