diff --git a/src/drivers/win/mapinput.cpp b/src/drivers/win/mapinput.cpp index 79d9a72a..4668e947 100644 --- a/src/drivers/win/mapinput.cpp +++ b/src/drivers/win/mapinput.cpp @@ -484,12 +484,6 @@ void PopulateMappingDisplay(HWND hwndDlg) // Get the selected filter. int filter = (int)SendDlgItemMessage(hwndDlg, COMBO_FILTER, CB_GETCURSEL, 0, 0); - // Delete everything in the current display. - for(unsigned i = num; i>0; --i) - { - SendMessage(hwndListView, LVM_DELETEITEM, (WPARAM)i-1, 0); - } - int* conflictTable = 0; // Get the filter type. @@ -504,6 +498,9 @@ void PopulateMappingDisplay(HWND hwndDlg) LVITEM lvi; + + int newItemCount = 0; + // Populate display. for(int i = 0, idx = 0; i < EMUCMD_MAX; ++i) { @@ -518,7 +515,12 @@ void PopulateMappingDisplay(HWND hwndDlg) lvi.pszText = (char*)FCEUI_CommandTypeNames[FCEUI_CommandTable[i].type]; lvi.lParam = (LPARAM)i; - SendMessage(hwndListView, LVM_INSERTITEM, (WPARAM)0, (LPARAM)&lvi); + if(newItemCount