a tentatively better fix for the problem of patch 1456060: don't use m_linesPerPage directly as it's initialized on demand by GetCountPerPage(); also removed some stray tabs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38749 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -2034,7 +2034,7 @@ wxListTextCtrlWrapper::wxListTextCtrlWrapper(wxListMainWindow *owner,
|
|||||||
wxPoint(rectLabel.x-4,rectLabel.y-4),
|
wxPoint(rectLabel.x-4,rectLabel.y-4),
|
||||||
wxSize(rectLabel.width+11,rectLabel.height+8));
|
wxSize(rectLabel.width+11,rectLabel.height+8));
|
||||||
m_text->SetFocus();
|
m_text->SetFocus();
|
||||||
|
|
||||||
m_text->PushEventHandler(this);
|
m_text->PushEventHandler(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2127,7 +2127,7 @@ void wxListTextCtrlWrapper::OnKillFocus( wxFocusEvent &event )
|
|||||||
{
|
{
|
||||||
if ( !AcceptChanges() )
|
if ( !AcceptChanges() )
|
||||||
m_owner->OnRenameCancelled( m_itemEdited );
|
m_owner->OnRenameCancelled( m_itemEdited );
|
||||||
|
|
||||||
Finish();
|
Finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2969,7 +2969,7 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event )
|
|||||||
// reset the selection and bail out
|
// reset the selection and bail out
|
||||||
HighlightAll(false);
|
HighlightAll(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3259,7 +3259,11 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (event.GetKeyCode())
|
// don't use m_linesPerPage directly as it might not be computed yet
|
||||||
|
const int pageSize = GetCountPerPage();
|
||||||
|
wxCHECK_RET( pageSize, _T("should have non zero page size") );
|
||||||
|
|
||||||
|
switch ( event.GetKeyCode() )
|
||||||
{
|
{
|
||||||
case WXK_UP:
|
case WXK_UP:
|
||||||
if ( m_current > 0 )
|
if ( m_current > 0 )
|
||||||
@@ -3283,11 +3287,8 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
|
|||||||
|
|
||||||
case WXK_PAGEUP:
|
case WXK_PAGEUP:
|
||||||
{
|
{
|
||||||
// we get a floating point exception without this
|
int steps = InReportView() ? pageSize - 1
|
||||||
if (m_linesPerPage == 0)
|
: m_current % pageSize;
|
||||||
m_linesPerPage = 1;
|
|
||||||
|
|
||||||
int steps = InReportView() ? m_linesPerPage - 1 : m_current % m_linesPerPage;
|
|
||||||
|
|
||||||
int index = m_current - steps;
|
int index = m_current - steps;
|
||||||
if (index < 0)
|
if (index < 0)
|
||||||
@@ -3299,13 +3300,9 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
|
|||||||
|
|
||||||
case WXK_PAGEDOWN:
|
case WXK_PAGEDOWN:
|
||||||
{
|
{
|
||||||
// we get a floating point exception without this
|
|
||||||
if (m_linesPerPage == 0)
|
|
||||||
m_linesPerPage = 1;
|
|
||||||
|
|
||||||
int steps = InReportView()
|
int steps = InReportView()
|
||||||
? m_linesPerPage - 1
|
? pageSize - 1
|
||||||
: m_linesPerPage - (m_current % m_linesPerPage) - 1;
|
: pageSize - (m_current % pageSize) - 1;
|
||||||
|
|
||||||
size_t index = m_current + steps;
|
size_t index = m_current + steps;
|
||||||
size_t count = GetItemCount();
|
size_t count = GetItemCount();
|
||||||
@@ -3319,7 +3316,7 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
|
|||||||
case WXK_LEFT:
|
case WXK_LEFT:
|
||||||
if ( !InReportView() )
|
if ( !InReportView() )
|
||||||
{
|
{
|
||||||
int index = m_current - m_linesPerPage;
|
int index = m_current - pageSize;
|
||||||
if (index < 0)
|
if (index < 0)
|
||||||
index = 0;
|
index = 0;
|
||||||
|
|
||||||
@@ -3330,7 +3327,7 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
|
|||||||
case WXK_RIGHT:
|
case WXK_RIGHT:
|
||||||
if ( !InReportView() )
|
if ( !InReportView() )
|
||||||
{
|
{
|
||||||
size_t index = m_current + m_linesPerPage;
|
size_t index = m_current + pageSize;
|
||||||
|
|
||||||
size_t count = GetItemCount();
|
size_t count = GetItemCount();
|
||||||
if ( index >= count )
|
if ( index >= count )
|
||||||
@@ -4615,13 +4612,14 @@ void wxListMainWindow::SortItems( wxListCtrlCompare fn, long data )
|
|||||||
|
|
||||||
void wxListMainWindow::OnScroll(wxScrollWinEvent& event)
|
void wxListMainWindow::OnScroll(wxScrollWinEvent& event)
|
||||||
{
|
{
|
||||||
int cw, ch, vw, vh;
|
int cw, ch, vw, vh;
|
||||||
GetVirtualSize(&vw, &vh);
|
GetVirtualSize(&vw, &vh);
|
||||||
GetClientSize(&cw, &ch);
|
GetClientSize(&cw, &ch);
|
||||||
|
|
||||||
if( event.GetOrientation() == wxVERTICAL && ch >= vh)
|
if ( event.GetOrientation() == wxVERTICAL && ch >= vh )
|
||||||
return;
|
return;
|
||||||
// update our idea of which lines are shown when we redraw the window the
|
|
||||||
|
// update our idea of which lines are shown when we redraw the window the
|
||||||
// next time
|
// next time
|
||||||
ResetVisibleLinesRange();
|
ResetVisibleLinesRange();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user