Daniel Jelinski : user32: Always call ScrollWindowEx in the listbox WM_VSCROLL handler.
Alexandre Julliard
julliard at winehq.org
Thu Dec 13 14:22:48 CST 2012
Module: wine
Branch: master
Commit: 39222f6ab7b1fce3985014a39d12bc6327b17993
URL: http://source.winehq.org/git/wine.git/?a=commit;h=39222f6ab7b1fce3985014a39d12bc6327b17993
Author: Daniel Jelinski <djelinski1 at gmail.com>
Date: Wed Dec 12 20:34:31 2012 +0100
user32: Always call ScrollWindowEx in the listbox WM_VSCROLL handler.
---
dlls/user32/listbox.c | 23 ++++++-----------------
1 files changed, 6 insertions(+), 17 deletions(-)
diff --git a/dlls/user32/listbox.c b/dlls/user32/listbox.c
index 5686e24..b3709ef 100644
--- a/dlls/user32/listbox.c
+++ b/dlls/user32/listbox.c
@@ -297,20 +297,12 @@ static LRESULT LISTBOX_SetTopItem( LB_DESCR *descr, INT index, BOOL scroll )
if (index < 0) index = 0;
if (descr->style & LBS_MULTICOLUMN) index -= index % descr->page_size;
if (descr->top_item == index) return LB_OKAY;
- if (descr->style & LBS_MULTICOLUMN)
- {
- INT diff = (descr->top_item - index) / descr->page_size * descr->column_width;
- if (scroll && (abs(diff) < descr->width))
- ScrollWindowEx( descr->self, diff, 0, NULL, NULL, 0, NULL,
- SW_INVALIDATE | SW_ERASE | SW_SCROLLCHILDREN );
-
- else
- scroll = FALSE;
- }
- else if (scroll)
+ if (scroll)
{
INT diff;
- if (descr->style & LBS_OWNERDRAWVARIABLE)
+ if (descr->style & LBS_MULTICOLUMN)
+ diff = (descr->top_item - index) / descr->page_size * descr->column_width;
+ else if (descr->style & LBS_OWNERDRAWVARIABLE)
{
INT i;
diff = 0;
@@ -328,11 +320,8 @@ static LRESULT LISTBOX_SetTopItem( LB_DESCR *descr, INT index, BOOL scroll )
else
diff = (descr->top_item - index) * descr->item_height;
- if (abs(diff) < descr->height)
- ScrollWindowEx( descr->self, 0, diff, NULL, NULL, 0, NULL,
- SW_INVALIDATE | SW_ERASE | SW_SCROLLCHILDREN );
- else
- scroll = FALSE;
+ ScrollWindowEx( descr->self, 0, diff, NULL, NULL, 0, NULL,
+ SW_INVALIDATE | SW_ERASE | SW_SCROLLCHILDREN );
}
if (!scroll) InvalidateRect( descr->self, NULL, TRUE );
descr->top_item = index;
More information about the wine-cvs
mailing list