Mercurial > dwindows
diff win/dw.c @ 573:314abd650968
Fix for incorrect indexes on subsequent container inserts on windows.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 09 Feb 2005 17:53:26 +0000 |
parents | 828e6a66c5c5 |
children | e4c5b03c7ce8 |
line wrap: on
line diff
--- a/win/dw.c Tue Jul 20 07:37:56 2004 +0000 +++ b/win/dw.c Wed Feb 09 17:53:26 2005 +0000 @@ -6607,7 +6607,7 @@ void * API dw_container_alloc(HWND handle, int rowcount) { LV_ITEM lvi; - int z; + int z, item; lvi.mask = LVIF_DI_SETITEM | LVIF_TEXT | LVIF_IMAGE; lvi.iSubItem = 0; @@ -6618,8 +6618,10 @@ lvi.iImage = -1; ShowWindow(handle, SW_HIDE); - for(z=0;z<rowcount;z++) + item = ListView_InsertItem(handle, &lvi); + for(z=1;z<rowcount;z++) ListView_InsertItem(handle, &lvi); + dw_window_set_data(handle, "_dw_insertitem", (void *)item); return (void *)handle; } @@ -6729,6 +6731,7 @@ ULONG *flags; LV_ITEM lvi; char textbuffer[100], *destptr = textbuffer; + int item = (int)dw_window_get_data(handle, "_dw_insertitem"); if(!cinfo || !cinfo->flags || !data) return; @@ -6736,7 +6739,7 @@ flags = cinfo->flags; lvi.mask = LVIF_DI_SETITEM | LVIF_TEXT; - lvi.iItem = row; + lvi.iItem = row + item; lvi.iSubItem = column; if(flags[column] & DW_CFA_BITMAPORICON) @@ -6907,8 +6910,9 @@ { LV_ITEM lvi; HWND container = (HWND)pointer; - - lvi.iItem = row; + int item = (int)dw_window_get_data(container, "_dw_insertitem"); + + lvi.iItem = row + item; lvi.iSubItem = 0; lvi.mask = LVIF_PARAM; lvi.lParam = (LPARAM)title;