comctl32: LVN_ITEMCHANGED notification should be sent for each item when group selected for ~LVS_OWNERDATA

Nikolay Sivov bunglehead at gmail.com
Fri Mar 13 04:45:39 CDT 2009


http://bugs.winehq.org/show_bug.cgi?id=17564

A 7-zip file manager is obviously affected by missed notification when group
selected (with Shift pressed). Selection count and file sizes aren't updated.
Count update's based on per item notification: I'm saying that after looking
sources and some message spying on WinXP.

Changelog:
    - (try2) added a fixme comment for unimplemented LVN_ODSTATECHANGED
    - LVN_ITEMCHANGED notification should be sent for each item when group selected for ~LVS_OWNERDATA

>From 6dfc1b271750a30e96bdf5e7269c299a64a24d41 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Fri, 13 Mar 2009 05:23:07 -0400
Subject: LVN_ITEMCHANGED notification should be sent for each item when group selected for ~LVS_OWNERDATA

---
 dlls/comctl32/listview.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index 5379561..caf82b9 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -3170,8 +3170,10 @@ static void LISTVIEW_SetGroupSelection(LISTVIEW_INFO *infoPtr, INT nItem)
 	iterator_destroy(&i);
     }
 
+    /* disable per item notifications on LVS_OWNERDATA style
+       FIXME: single LVN_ODSTATECHANGED should be used */
     bOldChange = infoPtr->bDoChangeNotify;
-    infoPtr->bDoChangeNotify = FALSE;
+    if (infoPtr->dwStyle & LVS_OWNERDATA) infoPtr->bDoChangeNotify = FALSE;
 
     LISTVIEW_DeselectAllSkipItems(infoPtr, selection);
 
-- 
1.5.6.5





More information about the wine-patches mailing list