[PATCH 1/4] comctl32/listview: Move LVN_ODSTATECHANGED notification to function.

Nikolay Sivov nsivov at codeweavers.com
Mon Feb 21 23:58:33 CST 2022



On 2/22/22 03:22, Angelo Haller wrote:
> On 21/02/2022 11.35, Nikolay Sivov wrote:
>>
>>
>> On 2/21/22 19:11, Angelo Haller wrote:
>>> Thank you Nikolay.
>>>
>>> I have actually tried doing so via the `ok_sequence(sequences, 
>>> PARENT_SEQ_INDEX,...` commands but
>>> sadly failed as quite a few of the existing tests are still marked 
>>> as wine_todo. Especially a lot of code
>>> regarding select/focus/deselect which are code paths that potential 
>>> tests for these patches
>>> would trigger as well.
>>>
>>> Is there a way of masking messages as "ignore" in `ok_sequence` that 
>>> I missed? I would like to mask
>>> some WM_NOTIFY messages like LVN_ODCACHEHINT as this has not been 
>>> implemented at all yet and
>>> LVN_GETDISPINFOA which gets called in a different order to windows.
>>>
>>> Or would a test marked as wine_todo suffice?
>>
>> We have "optional" flag for that, you can find it in existing message 
>> tests. If that becomes too problematic there is always an option
>
> I saw the optional flag. I thought those were `4.7x specific` or 
> specific to different windows versions?
> I was looking more for a `wine_todo` flag for individual messages, 
> because LVN_ODCACHEHINT is not really `optional` but rather a 
> `wine_todo`.

Optional is used for both cases - it's something we allow if it happens, 
and ignore if it doesn't. There is no wine_todo for individual messages.

>
> Although such a flag would not solve the problem of LVN_ITEMCHANGED 
> and LVN_GETDISPINFOA getting
> called in inverse order in windows and wine.

I'd simply mark LVN_GETDISPINFO as optional.

>
>> to introduce another sequence just for LVN_OD* tests, and filter 
>> irrelevant notifications there, so they don't appear in test results 
>> at all.
>>
> I'm finally grasping the workings of the different sequences.
> Easiest would of course be to introduce a new sequence entirely. 
> Something like `PARENT_ODSTATECHANGED_SEQ_INDEX` that filters
> solely for WM_NOTIFY && LVN_ODSTATECHANGED. That is the only way I can 
> think of to make the tests pass after applying these patches.

That would be a last resort solution, as you can see from existing 
tests, we don't use a new sequence for each test.

>
> Maybe adding and testing for such a specific sequence would be 
> acceptable when accompanied with a
> `PARENT_SEQ_INDEX` testing sequence that is still marked as wine todo?

Once we have a test that triggers LVN_ODSTATECHANGED, we'll figure out 
how to make it pass.

>
>>>
>>>
>>> On 21/02/2022 04.11, Nikolay Sivov wrote:
>>>> Hi, Angelo.
>>>>
>>>> Thank you for patches. I'll have to ask you to add some tests 
>>>> first, in comctl32/tests/listview.c, to verify all changes you're 
>>>> making.
>>>>
>>>
>>
>>
>
>




More information about the wine-devel mailing list