From e81953558887ebe81c8a4e7c8547439324b033b8 Mon Sep 17 00:00:00 2001 From: Aric Stewart Date: Tue, 2 Dec 2003 05:28:26 +0000 Subject: [PATCH] Invalidate items on set selection. --- controls/listbox.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/controls/listbox.c b/controls/listbox.c index bd14a895e9..3f807e30b6 100644 --- a/controls/listbox.c +++ b/controls/listbox.c @@ -1143,6 +1143,13 @@ static void LISTBOX_InvalidateItems( HWND hwnd, LB_DESCR *descr, INT index ) } } +static void LISTBOX_InvalidateItemRect( HWND hwnd, LB_DESCR *descr, INT index ) +{ + RECT rect; + + if (LISTBOX_GetItemRect( descr, index, &rect ) == 1) + InvalidateRect( hwnd, &rect, TRUE ); +} /*********************************************************************** * LISTBOX_GetItemHeight @@ -1361,7 +1368,7 @@ static LRESULT LISTBOX_SelectItemRange( HWND hwnd, LB_DESCR *descr, INT first, { if (descr->items[i].selected) continue; descr->items[i].selected = TRUE; - LISTBOX_RepaintItem( hwnd, descr, i, ODA_SELECT ); + LISTBOX_InvalidateItemRect(hwnd, descr, i); } LISTBOX_SetCaretIndex( hwnd, descr, last, TRUE ); } @@ -1371,7 +1378,7 @@ static LRESULT LISTBOX_SelectItemRange( HWND hwnd, LB_DESCR *descr, INT first, { if (!descr->items[i].selected) continue; descr->items[i].selected = FALSE; - LISTBOX_RepaintItem( hwnd, descr, i, ODA_SELECT ); + LISTBOX_InvalidateItemRect(hwnd, descr, i); } } return LB_OKAY;