[PATCH v4 0/7] Fix LVS_OWNERDATA list view multi select.

Angelo Haller wine-devel at szanni.org
Tue Jun 28 16:16:05 CDT 2022


From: Angelo Haller <angelo at szanni.org>

The following patches fix sending of the LVN_ODSTATECHANGED notification for
LVS_OWNERDATA list views, adding more refined tests in the process and
fixing various bugs.

This is v4 fixing the log buffer overflow on the debian test machine by
moving some of the up/down key sequences to a later patch. Patch 1/7
still includes the necessary up/down key sequences to validate the fixes
in the following patches. The matching up/down key sequences for 1/7
are then introduced in 7/7. I was sadly unable to introduce the test
sequence with each fix, as this would require inventing entirely new
test sequences, just to work around the debian 32KB log buffer limit.

I hope this is ok as it stands.

I am also attaching the my remarks from v3, as I don't know if they got
ignored due to failing tests:

I was sadly not able to trigger any deselect sequences through emulating
mouse clicks. I was actually completely unable even send a lef mouse
button down at all. Both SendMessage and SendInput fail, on wind and
windows.

I am unsure if programmatic mouse clicks are even supported in list
views? Some forums seem to suggest, that this is only the case for
buttons and similar elements. I was following the code snippets in
other parts of the comctl32 tests.

The other thing might be that the signal is getting caught somewhere in
the test code. If anybody has any more insight in this regard, I'd be
happy to add additional mouse click tests as well.

The other thing I was unable to do is activate the single select tests
via SHIFT/+COMMAND to show we need patch 6/6.
 Windows weirdly informs about the selected item twice, once to inform
the item has been selected and then in another call later about the
item  being focused as well. This seemingly only affects
LVS_OWNERDATA listviews from my tests.



Warning: I have had access to the Windows Research Kernel (WRK) 1.2
~10 years ago. These changes are regarding comctrl32 & tests which are NOT
part of the WRK. As outlined in https://wiki.winehq.org/Developer_FAQ this
should therefore satisfy the requirement of ONLY submitting patches to
components I have NOT had access to.

Angelo Haller (7):
  Add more test cases to ownderdata listviews:
  comctl32/listview: Fix deselect on LVS_OWNERDATA.
  comctl32/listview: Move sending LVN_ODSTATECHANGED notifications to a
    function.
  comctl32/listview: Send LVN_ODSTATECHANGED only for virtual lists.
  comctl32/listview: Send LVN_ODSTATECHANGED notification.
  comctl32/listview: Send LVN_ODSTATECHANGED only for true ranges.
  comctl32/tests: Expand ownerdata listview tests.

 dlls/comctl32/listview.c       |  55 ++++---
 dlls/comctl32/tests/listview.c | 253 +++++++++++++++++++++++++++++++--
 2 files changed, 281 insertions(+), 27 deletions(-)

Signed-off-by: Angelo Haller <angelo at szanni.org>
-- 
2.36.1



More information about the wine-devel mailing list