On Mon Jun 16 11:24:31 2025 +0000, Nikolay Sivov wrote:
I don't think we can do that unconditionally, a lot of application were never tested with v5 and very likely depend on such differences. I know that we don't run some of the painting tests on v6 at the moment. Splitting them up and having a separate test for background mode that runs on v5 and v6 is what we should do. We might do a separate v6 build in theory, but I suspect that will be avoided for as long as possible. It should be enough to check for windows class in current context in WM_NCCREATE (and maybe for actual class name too if it's possible to use versioned name directly, I don't remember).
I added tests for v6. The comctl32 v6 listview with LVS_REPORT style will send some custom draw messages first with OPAQUE mode to draw headers. Then it will send another custom draw message sequence to draw items. We don't do that on Wine currently. To fix this properly, we will need to have two implementations for v5 and v6. Then, for v6, we need to send messages to draw headers first with OPAQUE. Also, 32-bit and 64-bit comctl32 v6 listviews have different behaviors. I am not sure whether we should match these behaviors now. We will probably need to separate comctl32 into v5 and v6. I am sending an update with TRANSPARENT set for all custom draw messages. It's at least a bit closer to what the native does.