X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bf6c2b3505580f37f414669c0812f72d8509fac9..e7b3d6babbc006f2936be6827d0b826adbbc82e4:/src/generic/gridg.cpp diff --git a/src/generic/gridg.cpp b/src/generic/gridg.cpp index 5798ad501e..e1a020e44d 100644 --- a/src/generic/gridg.cpp +++ b/src/generic/gridg.cpp @@ -98,7 +98,7 @@ wxGenericGrid::wxGenericGrid() m_currentRectVisible = FALSE; m_editable = TRUE; - m_editInPlace = TRUE; + m_editInPlace = FALSE; m_inOnTextInPlace = FALSE; #if defined(__WIN95__) @@ -165,6 +165,8 @@ bool wxGenericGrid::Create(wxWindow *parent, m_textItem = (wxTextCtrl *) NULL; m_currentRectVisible = FALSE; m_editable = TRUE; + m_editInPlace = FALSE; + m_inOnTextInPlace = FALSE; #if defined(__WIN95__) m_scrollWidth = wxSystemSettings::GetSystemMetric(wxSYS_VSCROLL_X); #elif defined(__WXGTK__) @@ -250,8 +252,9 @@ bool wxGenericGrid::Create(wxWindow *parent, wxPoint( m_currentRect.x-2, m_currentRect.y-2 ), wxSize( m_currentRect.width+4, m_currentRect.height+4 ), wxNO_BORDER | wxTE_PROCESS_ENTER ); - m_inPlaceTextItem->Show(TRUE); - m_inPlaceTextItem->SetFocus(); + m_inPlaceTextItem->Show(m_editInPlace); + if ( m_editInPlace ) + m_inPlaceTextItem->SetFocus(); return TRUE; } @@ -1445,8 +1448,30 @@ void wxGenericGrid::OnSelectCellImplementation(wxDC *dc, int row, int col) if ( m_editable && m_editInPlace ) { - m_inPlaceTextItem->SetSize( m_currentRect.x-2, m_currentRect.y-2, - m_currentRect.width+4, m_currentRect.height+4 ); + int x, y, width, height; + if ( m_currentRect.x <= 0 ) + { + x = 0; + width = m_currentRect.width + 2; + } + else + { + x = m_currentRect.x - 2; + width = m_currentRect.width + 4; + } + + if ( m_currentRect.y <= 0 ) + { + y = 0; + height = m_currentRect.height + 2; + } + else + { + y = m_currentRect.y - 2; + height = m_currentRect.height + 4; + } + + m_inPlaceTextItem->SetSize( x, y, width, height ); if ( cell ) {