X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/86351e4a9d12822b31f2052fe299fc6be6d5f44d..f4d3253b5923de972846b09814623d7b05e9d4d1:/src/generic/listctrl.cpp diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 771d738f7a..19808a23fd 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -2838,12 +2838,15 @@ bool wxListMainWindow::OnRenameAccept(size_t itemEdit, const wxString& value) # pragma message disable initnotreach #endif -void wxListMainWindow::OnRenameCancelled(size_t itemEdit) +void wxListMainWindow::OnRenameCancelled(size_t WXUNUSED(itemEdit)) { // wxMSW seems not to notify the program about // cancelled label edits. return; + #if 0 + // above unconditional return cause warning about not reachable code + // let owner know that the edit was cancelled wxListEvent le( wxEVT_COMMAND_LIST_END_LABEL_EDIT, GetParent()->GetId() ); @@ -2860,6 +2863,7 @@ void wxListMainWindow::OnRenameCancelled(size_t itemEdit) data->GetItem( 0, le.m_item ); GetEventHandler()->ProcessEvent( le ); + #endif } #ifdef __VMS__ # pragma message enable initnotreach @@ -3324,6 +3328,14 @@ void wxListMainWindow::SetFocus() void wxListMainWindow::OnSetFocus( wxFocusEvent &WXUNUSED(event) ) { + if ( GetParent() ) + { + wxFocusEvent event( wxEVT_SET_FOCUS, GetParent()->GetId() ); + event.SetEventObject( GetParent() ); + if ( GetParent()->GetEventHandler()->ProcessEvent( event) ) + return; + } + // wxGTK sends us EVT_SET_FOCUS events even if we had never got // EVT_KILL_FOCUS before which means that we finish by redrawing the items // which are already drawn correctly resulting in horrible flicker - avoid @@ -3334,19 +3346,18 @@ void wxListMainWindow::OnSetFocus( wxFocusEvent &WXUNUSED(event) ) RefreshSelected(); } - - if ( !GetParent() ) - return; - - wxFocusEvent event( wxEVT_SET_FOCUS, GetParent()->GetId() ); - event.SetEventObject( GetParent() ); - GetParent()->GetEventHandler()->ProcessEvent( event ); } void wxListMainWindow::OnKillFocus( wxFocusEvent &WXUNUSED(event) ) { + if ( GetParent() ) + { + wxFocusEvent event( wxEVT_KILL_FOCUS, GetParent()->GetId() ); + event.SetEventObject( GetParent() ); + if ( GetParent()->GetEventHandler()->ProcessEvent( event) ) + return; + } m_hasFocus = FALSE; - RefreshSelected(); } @@ -3965,13 +3976,19 @@ void wxListMainWindow::RecalculatePositions(bool noRefresh) // the window, we recalculate after subtracting the space taken by the // scrollbar - int entireWidth = 0, - entireHeight = 0; + int entireWidth = 0; + #if 0 + // entireHeight is not used so no need to define it + int entireHeight = 0; + #endif for (int tries = 0; tries < 2; tries++) { entireWidth = 2*EXTRA_BORDER_X; + #if 0 + // entireHeight is not used so no need to define it entireHeight = 2*EXTRA_BORDER_Y; + #endif if (tries == 1) { @@ -4340,18 +4357,39 @@ void wxListMainWindow::InsertItem( wxListItem &item ) m_dirty = TRUE; + #if 0 + // this is unused variable int mode = 0; + #endif if ( HasFlag(wxLC_REPORT) ) { + #if 0 + // this is unused variable mode = wxLC_REPORT; + #endif ResetVisibleLinesRange(); } else if ( HasFlag(wxLC_LIST) ) + #if 0 + // this is unused variable mode = wxLC_LIST; + #else + {} + #endif else if ( HasFlag(wxLC_ICON) ) + #if 0 + // this is unused variable mode = wxLC_ICON; + #else + {} + #endif else if ( HasFlag(wxLC_SMALL_ICON) ) + #if 0 + // this is unused variable mode = wxLC_ICON; // no typo + #else + {} + #endif else { wxFAIL_MSG( _T("unknown mode") ); @@ -4365,6 +4403,14 @@ void wxListMainWindow::InsertItem( wxListItem &item ) m_dirty = TRUE; + // If an item is selected at or below the point of insertion, we need to + // increment the member variables because the current row's index has gone + // up by one + if ( HasCurrent() && m_current >= id ) + { + m_current++; + } + SendNotify(id, wxEVT_COMMAND_LIST_INSERT_ITEM); RefreshLines(id, GetItemCount() - 1);