X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9a83f860948059b0273b5cc6d9e43fadad3ebfca..7e81e3a796eec142428ca04b44015956031eeb0f:/src/generic/vlbox.cpp diff --git a/src/generic/vlbox.cpp b/src/generic/vlbox.cpp index 551177def5..4ae7b7652c 100644 --- a/src/generic/vlbox.cpp +++ b/src/generic/vlbox.cpp @@ -6,7 +6,7 @@ // Created: 31.05.03 // RCS-ID: $Id$ // Copyright: (c) 2003 Vadim Zeitlin -// License: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -249,7 +249,10 @@ bool wxVListBox::DoSetCurrent(int current) { // it is, indeed, only partly visible, so scroll it into view to // make it entirely visible + // BUT scrolling down when m_current is first visible makes it + // completely hidden, so that is even worse while ( (size_t)m_current + 1 == GetVisibleRowsEnd() && + (size_t)m_current != GetVisibleRowsBegin() && ScrollToRow(GetVisibleBegin() + 1) ) ; // but in any case refresh it as even if it was only partly visible @@ -272,7 +275,7 @@ void wxVListBox::SendSelectedEvent() wxASSERT_MSG( m_current != wxNOT_FOUND, wxT("SendSelectedEvent() shouldn't be called") ); - wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, GetId()); + wxCommandEvent event(wxEVT_LISTBOX, GetId()); InitEvent(event, m_current); (void)GetEventHandler()->ProcessEvent(event); } @@ -605,14 +608,17 @@ void wxVListBox::OnKeyDown(wxKeyEvent& event) switch ( event.GetKeyCode() ) { case WXK_HOME: + case WXK_NUMPAD_HOME: current = 0; break; case WXK_END: + case WXK_NUMPAD_END: current = GetRowCount() - 1; break; case WXK_DOWN: + case WXK_NUMPAD_DOWN: if ( m_current == (int)GetRowCount() - 1 ) return; @@ -620,6 +626,7 @@ void wxVListBox::OnKeyDown(wxKeyEvent& event) break; case WXK_UP: + case WXK_NUMPAD_UP: if ( m_current == wxNOT_FOUND ) current = GetRowCount() - 1; else if ( m_current != 0 ) @@ -629,11 +636,13 @@ void wxVListBox::OnKeyDown(wxKeyEvent& event) break; case WXK_PAGEDOWN: + case WXK_NUMPAD_PAGEDOWN: PageDown(); current = GetVisibleBegin(); break; case WXK_PAGEUP: + case WXK_NUMPAD_PAGEUP: if ( m_current == (int)GetVisibleBegin() ) { PageUp(); @@ -711,7 +720,7 @@ void wxVListBox::OnLeftDClick(wxMouseEvent& eventMouse) // this event as a left-click instead if ( item == m_current ) { - wxCommandEvent event(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, GetId()); + wxCommandEvent event(wxEVT_LISTBOX_DCLICK, GetId()); InitEvent(event, item); (void)GetEventHandler()->ProcessEvent(event); }