comctl32/listview: update dwStyle before checking for scrollbar

Daniel Jelinski djelinski1 at gmail.com
Sat Sep 22 12:41:08 CDT 2012


Hello Nikolay,
I'm not sure. There are some tests:
http://source.winehq.org/source/dlls/user32/tests/msg.c#L1613
Comments indicate that some systems send WM_STYLECHANGED to windows
with non-client area, and no systems send it to windows without it. I
haven't figured out yet if the comment is true or to which category
ListView belongs.

Out of curiosity I checked which systems send WM_STYLECHANGED:
http://testbot.winehq.org/JobDetails.pl?Key=21701
Vista and Windows 7 do send it, others do not, neither does Wine.
Judging by the code it doesn't look like a quick fix to me (but I
wouldn't mind if someone proved me wrong here).

Regards,
Daniel

PS. I guess I should have used GetWindowLong instead on
GetWindowLongPtr. Not sure if I should bother with resending now.


2012/9/22 Nikolay Sivov <nsivov at codeweavers.com>:
> On 9/21/2012 23:07, Daniel Jelinski wrote:
>
>> dwStyle is updated only in WM_STYLECHANGED, which is not sent
>> when displaying and hiding scrollbars.
>> Fixes the issue where there was a large margin between items
>> and horizontal scrollbar (e.g. in file open dialog).
>
> Are you sure it's really not supposed to be sent when WS_HSCROLL/WS_VSCROLL
> bits are changed?
> A quick test with ControlSpy shows style changing messages when I set/reset
> these. So it's possible there's a bug
> outside of comctl32.



More information about the wine-devel mailing list