[PATCH v3 0/6] Fix LVS_OWNERDATA list view multi select.

Angelo Haller wine-devel at szanni.org
Fri Jun 17 22:08:37 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 v3 addressing most of the concerns that were raised in v2,
especially adding even more 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

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 (6):
  comctl32/tests: Expand ownerdata listview tests.
  comctl32/listview: Fix deselect on LVS_OWNERDATA.
  comctl32/listview: Move sending LVN_ODSTATECHANGED notifications to a
  comctl32/listview: Send LVN_ODSTATECHANGED only for virtual lists.
  comctl32/listview: Send LVN_ODSTATECHANGED notification.
  comctl32/listview: Send LVN_ODSTATECHANGED only for true ranges.

 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>

More information about the wine-devel mailing list