comctl32/listview: fix LVM_SETICONSPACING on 64bit machines
Daniel Jelinski
djelinski1 at gmail.com
Sat Feb 9 17:18:46 CST 2013
this time with patch attached.
-------------- next part --------------
From 3ae52a45e1825b2dfcb37a49c57dd45a759b1c08 Mon Sep 17 00:00:00 2001
From: Daniel Jelinski <djelinski1 at gmail.com>
Date: Mon, 4 Feb 2013 20:57:58 +0100
Subject: [PATCH] comctl32/listview: fix LVM_SETICONSPACING on 64bit machines
---
dlls/comctl32/listview.c | 4 +++-
dlls/comctl32/tests/listview.c | 21 ++++++++++++++++++---
2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index bc8997a..fe76b4c 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -11455,7 +11455,9 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return LISTVIEW_SetHoverTime(infoPtr, (DWORD)lParam);
case LVM_SETICONSPACING:
- return LISTVIEW_SetIconSpacing(infoPtr, (short)LOWORD(lParam), (short)HIWORD(lParam));
+ if(lParam == -1)
+ return LISTVIEW_SetIconSpacing(infoPtr, -1, -1);
+ return LISTVIEW_SetIconSpacing(infoPtr, LOWORD(lParam), HIWORD(lParam));
case LVM_SETIMAGELIST:
return (LRESULT)LISTVIEW_SetImageList(infoPtr, (INT)wParam, (HIMAGELIST)lParam);
diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c
index 98ca495..fef3f60 100644
--- a/dlls/comctl32/tests/listview.c
+++ b/dlls/comctl32/tests/listview.c
@@ -4654,11 +4654,26 @@ static void test_getitemspacing(void)
ret = SendMessage(hwnd, LVM_GETITEMSPACING, FALSE, 0);
expect(100, LOWORD(ret));
- expect(0xFFFF, HIWORD(ret));
- ret = SendMessage(hwnd, LVM_SETICONSPACING, 0, -1);
- expect(100, LOWORD(ret));
expect(0xFFFF, HIWORD(ret));
+
+ if (sizeof(void*) == 8)
+ {
+ /* NOTE: -1 is not treated the same as (DWORD)-1 by 64bit listview */
+ ret = SendMessage(hwnd, LVM_SETICONSPACING, 0, (DWORD)-1);
+ expect(100, LOWORD(ret));
+ expect(0xFFFF, HIWORD(ret));
+
+ ret = SendMessage(hwnd, LVM_SETICONSPACING, 0, -1);
+ expect(0xFFFF, LOWORD(ret));
+ expect(0xFFFF, HIWORD(ret));
+ }
+ else
+ {
+ ret = SendMessage(hwnd, LVM_SETICONSPACING, 0, -1);
+ expect(100, LOWORD(ret));
+ expect(0xFFFF, HIWORD(ret));
+ }
ret = SendMessage(hwnd, LVM_GETITEMSPACING, FALSE, 0);
/* spacing + icon size returned */
expect(cx + 40, LOWORD(ret));
--
1.7.5.4
More information about the wine-patches
mailing list