Module: wine Branch: master Commit: b2cb04b4e6b9dc4901545ecb9ecae8f885cb7b99 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b2cb04b4e6b9dc4901545ecb9e...
Author: Piotr Caban piotr@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: