https://bugs.winehq.org/show_bug.cgi?id=27579
Lorenzo Ferrillo lorenzofer@live.it changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |lorenzofer@live.it
--- Comment #40 from Lorenzo Ferrillo lorenzofer@live.it --- Created attachment 72201 --> https://bugs.winehq.org/attachment.cgi?id=72201 hack to force it draw
Taking wine.fixes@gmail.com comment #37 I made a small hack for others to use, on the top master that moved a lot of this code to win32u.
Other WM_ERASEBKGND instances of send_message don't use the result at all. Maybe we shouldn't use it even in this case.
I made it so that send_erase intenrally return TRUE instead of forcing ps->fErase to be TRUE in NtUserBeginPaint.
Another possibility is to pass UPDATE_DELAYED_ERASE to send_erase in NtUserBeginPaint, wtihout modfying the first condition flag the BOOL need_erase = (flags & UPDATE_DELAYED_ERASE) != 0; But the send_message was returning 0 so that assginemnt have to gone off.
I wonder if the partial cause is some sort of mishandling of the procedure call (maybe it's return type) for some (or maybe just Background Erase), as this bug involve wndproc overrides.
This also fix the same black box issue with Wrye Bash on the top of wine staging (in particular th comctl32 patch setting it to version 6. Apparently from other analysis in this report, that version make wxWidget (that WB use) to inject a WndProc to that component (unsure if it's just this component override that got added in the case or all components) ). I will need to check wxWidget source