@Martin_fr
1° r59596 WORKS, thank you !
2° Personal >SPECULATION< on potential change of behaviour in Windows 10
Your patch creates a (some_width by one_pixel_height) invalidated region.
MAYBE, Windows 10 ignores empty rectangles and don't call WM_PAINT for empty rectangles.
Note : I havent found anything browsing the net that would confirm this idea.
I have modified .\lcl\interfaces\win32\win32winapi.inc for debugging to
function TWin32WidgetSet.InvalidateRect(AHandle: HWND; Rect: PRect;
BErase: Boolean): Boolean;
var
Flags: UINT;
ORect: TRect;
begin
Flags := RDW_INVALIDATE or RDW_ALLCHILDREN;
if BErase then
Flags := Flags or RDW_ERASE;
if Rect <> nil then
begin
with Rect^ do // ~bk dbg
if (Right<=Left) or (Bottom<=Top) then // ~bk dbg
Right:=Right; // ~bk dbg <- Breakpoint : frequently stops here
GetLCLClientBoundsOffset(aHandle, ORect);
OffsetRect(Rect^, ORect.Left, ORect.Top);
end;
Result := Boolean(Windows.RedrawWindow(aHandle, Rect, 0, Flags));
end;
// ~bk dbg <- Breakpoint : frequently stops here
does effectively stop quite frequently from SynEdit and co.
Just my 2 cents ...