Piotr Caban : comctl32: Fix listview horizontal scrolling.
Alexandre Julliard
julliard at winehq.org
Tue Jun 7 12:02:34 CDT 2011
Module: wine
Branch: master
Commit: b2cb04b4e6b9dc4901545ecb9ecae8f885cb7b99
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b2cb04b4e6b9dc4901545ecb9ecae8f885cb7b99
Author: Piotr Caban <piotr at codeweavers.com>
Date: Mon Jun 6 21:45:25 2011 +0200
comctl32: Fix listview horizontal scrolling.
---
dlls/comctl32/listview.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index 2f20f8e..6c7e26e 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -9608,6 +9608,7 @@ static LRESULT LISTVIEW_HScroll(LISTVIEW_INFO *infoPtr, INT nScrollCode,
{
INT nOldScrollPos, nNewScrollPos;
SCROLLINFO scrollInfo;
+ BOOL is_an_icon;
TRACE("(nScrollCode=%d(%s), nScrollDiff=%d)\n", nScrollCode,
debugscrollcode(nScrollCode), nScrollDiff);
@@ -9617,6 +9618,8 @@ static LRESULT LISTVIEW_HScroll(LISTVIEW_INFO *infoPtr, INT nScrollCode,
scrollInfo.cbSize = sizeof(SCROLLINFO);
scrollInfo.fMask = SIF_PAGE | SIF_POS | SIF_RANGE | SIF_TRACKPOS;
+ is_an_icon = ((infoPtr->uView == LV_VIEW_ICON) || (infoPtr->uView == LV_VIEW_SMALLICON));
+
if (!GetScrollInfo(infoPtr->hwndSelf, SB_HORZ, &scrollInfo)) return 1;
nOldScrollPos = scrollInfo.nPos;
@@ -9627,11 +9630,11 @@ static LRESULT LISTVIEW_HScroll(LISTVIEW_INFO *infoPtr, INT nScrollCode,
break;
case SB_LINELEFT:
- nScrollDiff = -1;
+ nScrollDiff = (is_an_icon) ? -LISTVIEW_SCROLL_ICON_LINE_SIZE : -1;
break;
case SB_LINERIGHT:
- nScrollDiff = 1;
+ nScrollDiff = (is_an_icon) ? LISTVIEW_SCROLL_ICON_LINE_SIZE : 1;
break;
case SB_PAGELEFT:
More information about the wine-cvs
mailing list