From 492ec6133d49e86537ae146cacfb045ddcf48f5d Mon Sep 17 00:00:00 2001 From: Jose Carlos Jesus Date: Sun, 9 Jun 2024 13:51:35 -0400 Subject: [PATCH] [COMCTL32] Fix CORE-19561 --- dll/win32/comctl32/listbox.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/dll/win32/comctl32/listbox.c b/dll/win32/comctl32/listbox.c index 897f2dc2c69..d01e7576108 100644 --- a/dll/win32/comctl32/listbox.c +++ b/dll/win32/comctl32/listbox.c @@ -275,28 +275,27 @@ static LRESULT LISTBOX_SetTopItem( LB_DESCR *descr, INT index, BOOL scroll ) if (descr->top_item == index) return LB_OKAY; if (scroll) { - INT diff; + INT dx = 0, dy = 0; if (descr->style & LBS_MULTICOLUMN) - diff = (descr->top_item - index) / descr->page_size * descr->column_width; + dx = (descr->top_item - index) / descr->page_size * descr->column_width; else if (descr->style & LBS_OWNERDRAWVARIABLE) { INT i; - diff = 0; if (index > descr->top_item) { for (i = index - 1; i >= descr->top_item; i--) - diff -= descr->items[i].height; + dy -= descr->items[i].height; } else { for (i = index; i < descr->top_item; i++) - diff += descr->items[i].height; + dy += descr->items[i].height; } } else - diff = (descr->top_item - index) * descr->item_height; + dy = (descr->top_item - index) * descr->item_height; - ScrollWindowEx( descr->self, 0, diff, NULL, NULL, 0, NULL, + ScrollWindowEx( descr->self, dx, dy, NULL, NULL, 0, NULL, SW_INVALIDATE | SW_ERASE | SW_SCROLLCHILDREN ); } else -- 2.42.0.windows.1