[PATCH v2 resend 3/6] comctl32/listview: Send LVN_ODSTATECHANGED only for virtual lists.
wine-devel at szanni.org
Fri Jun 10 18:56:55 CDT 2022
On 10/06/2022 03.13, Zhiyi Zhang wrote:
> On 5/26/22 04:00, Angelo Haller wrote:
>> From: Angelo Haller <angelo at szanni.org>
>> The LVN_ODSTATECHANGED notification should only be sent to lists
>> that have LVS_OWNERDATA set.
>> Signed-off-by: Angelo Haller <angelo at szanni.org>
>> dlls/comctl32/listview.c | 1 +
>> 1 file changed, 1 insertion(+)
>> diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
>> index 72ade724313..318df0a4093 100644
>> --- a/dlls/comctl32/listview.c
>> +++ b/dlls/comctl32/listview.c
>> @@ -8946,6 +8946,7 @@ static VOID LISTVIEW_SetOwnerDataState(LISTVIEW_INFO *infoPtr, INT nFirst, INT n
>> NMLVODSTATECHANGE nmlv;
>> + if (!(infoPtr->dwStyle & LVS_OWNERDATA)) return;
> Make sense. It will be better if you can add a simple test before this patch and remove the todo_wines after the fix.
Is this strictly necessary? The call site has special handling for:
infoPtr->dwStyle & LVS_OWNERDATA
We could guard the call to the function at the call site, if that is
Apart from that I am not sure how to write a test for this. This bug is
triggered by creating a non ownerdata list and selecting multiple
entries holding shift+ctrl and clicking with the mouse. This will send
an LVN_ODSTATECHANGED notification where it is not supposed to (as it is
not an ownerdata list).
I have not found any test examples with mouse emulation. Maybe I missed
Or should I open a separate bug report for this line?
>> if (!item) return;
>> ZeroMemory(&nmlv, sizeof(nmlv));
More information about the wine-devel