https://bugs.winehq.org/show_bug.cgi?id=54878
Bernhard Übelacker bernhardu@mailbox.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bernhardu@mailbox.org
--- Comment #17 from Bernhard Übelacker bernhardu@mailbox.org --- Created attachment 74564 --> https://bugs.winehq.org/attachment.cgi?id=74564 Workaround: WM_PRINTCLIENT called with options == 0.
Hello, I tried to find out what is the difference between the painting when windows version set to 8 against it set to 10.
And as far as I see WinSCP calls CallWindowProcW with WM_PAINT for windows<=8. For windows version upwards it calls CallWindowProcW with WM_PRINTCLIENT.
But in wine WM_PRINTCLIENT gets called with lparam/options == 0, which causes LISTVIEW_PrintClient doing not painting.
I am not sure if WinSCP would call it windows with lparam/options set, or maybe windows takes lparam/options == 0 as PRF_ERASEBKGND|PRF_CLIENT.
Attached patch does this and with it WinSCP shows the pane content. With it it reaches LISTVIEW_Paint similar as with windows version set.
#6 LISTVIEW_Paint () at dlls/comctl32/listview.c:10785 #7 LISTVIEW_PrintClient () at dlls/comctl32/listview.c:10848 #8 LISTVIEW_WindowProc () at dlls/comctl32/listview.c:11852 #9 WINPROC_wrapper () from .wine/drive_c/windows/syswow64/user32.dll #10 call_window_proc () at dlls/user32/winproc.c:125 #11 dispatch_win_proc_params () at dlls/user32/winproc.c:725 #12 CallWindowProcW@20 () at dlls/user32/winproc.c:1282 #13 WinSCP!TMethodImplementationIntercept () from WinSCP.exe