[Bug 52534] New: ListView: multi select never sends LVN_ODSTATECHANGED
https://bugs.winehq.org/show_bug.cgi?id=52534 Bug ID: 52534 Summary: ListView: multi select never sends LVN_ODSTATECHANGED Product: Wine Version: 7.1 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: comctl32 Assignee: wine-bugs(a)winehq.org Reporter: winehq-bugs(a)angelohaller.com Distribution: --- When using a ListView in virtual mode (LVS_OWNERDATA) and selecting multiple rows (holding down shift and selecting) the message code LVN_ODSTATECHANGED is never sent. Looking through the wine source, there is definitely code present sending LVN_ODSTATECHANGED, this however never reaches the application and hence is a bug. Running the same application in Windows 7 will however send the LVN_ODSTATECHANGED code. This seems to be true for ALL programs using LVS_OWNERDATA and supporting multi select. This is an issue that arose working on https://github.com/libui-ng/libui-ng/pull/73 A nicer example to reproduce would be from the `Windows classic samples`. I forked the official Microsoft repo to add some debug printing: 1. Clone https://github.com/szanni/Windows-classic-samples 2. Change to directory Samples/Win7Samples/winui/controls/common/vlistvw 3. Build VListVw (I cross compile via `x86_64-w64-mingw32-gcc VListVw.c -lcomctl32` but using the vcproj should work too?) or use the test binary a.exe (linked at the bottom) 4. Run the resulting .exe 5. Select a cell (should print `LVN_ITEMCHANGED`) 6. Hold down `shift` and select a cell a few rows down below. On Windows 7 step 6. triggers the message `LVN_ODSTATECHANGED` to be emitted (as can be seen in the debug print statements). wine however never sends this message. This is contrary to the documentation provided in https://docs.microsoft.com/en-us/windows/win32/controls/lvn-itemchanged#rema... and behavior developers rely on. Test binary: https://github.com/szanni/Windows-classic-samples/blob/main/Samples/Win7Samp... -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=52534 --- Comment #1 from Angelo <winehq-bugs(a)angelohaller.com> ---
Test binary: https://github.com/szanni/Windows-classic-samples/blob/main/Samples/Win7Samp...
Permalink should have been https://github.com/szanni/Windows-classic-samples/blob/e50d85b9604bf02a2a3a9... -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=52534 --- Comment #2 from Angelo <winehq-bugs(a)angelohaller.com> --- Updated tester with more debug output: https://github.com/szanni/Windows-classic-samples/blob/a670d65e47e399fe9f6dc... Clearer instructions on how to reproduce: 1. Run a.exe included in this comment 2. Click `Item 1` 3. Hold down Shift and click `Item 5` See the differences in the output log between Windows 7 and wine 7.1. LVN_ODSTATECHANGED does not get signaled on wine 7.1. I actually discovered the FIXME in the LISTVIEW_SetGroupSelection function. I was looking at the LISTVIEW_AddGroupSelection which does actually work as intended. Interestingly enough LVN_ODSTATECHANGED is emitted when holding down CONTROL+SHIFT as this uses the code path LISTVIEW_AddGroupSelection instead of LISTVIEW_SetGroupSelection. I can however not discern why there are two entirely different functions seemingly doing the very same thing - just very differently. I must be missing something here. There is another difference `LVN_ITEMCHANGED: -1` that should be addressed in a different issue though. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=52534 --- Comment #3 from Angelo <winehq-bugs(a)angelohaller.com> --- Created attachment 71845 --> https://bugs.winehq.org/attachment.cgi?id=71845 Log output running a.exe on Windows 7 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=52534 --- Comment #4 from Angelo <winehq-bugs(a)angelohaller.com> --- Created attachment 71846 --> https://bugs.winehq.org/attachment.cgi?id=71846 Log output running a.exe on wine 7.1 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=52534 Zhiyi Zhang <zzhang(a)codeweavers.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |zzhang(a)codeweavers.com Fixed by SHA1| |c73290154297e037d2f9181eba0 | |1759e1e13965f Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #5 from Zhiyi Zhang <zzhang(a)codeweavers.com> --- Fixed by c73290154297e037d2f9181eba01759e1e13965f -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=52534 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #6 from Alexandre Julliard <julliard(a)winehq.org> --- Closing bugs fixed in 7.15. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=52534 Michael Stefaniuc <mstefani(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |7.0.x -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=52534 Michael Stefaniuc <mstefani(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|7.0.x |--- --- Comment #7 from Michael Stefaniuc <mstefani(a)winehq.org> --- Removing the 7.0.x milestone from bug fixes included in 7.0.2. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla