In your commit, you missed to also invalidate the reverse arrow cursor when handling WM_NCPAINTand WM_WINDOWPOSCHANGED in case UpdateRenderingParams(false) returns true: reverseArrowCursor.Invalidate();
The Scintilla edit control has no WS_BORDER style, though WM_NCPAINT is triggered.
Blurry text in autocompletion lists with DirectWrite in a GDI scaled application
Update: Yesterday, I was moving the application between monitors with the shortcut Win+Shift+Left/Right. This triggers the message WM_WINDOWPOSCHANGED. Alas, when you drag the application with the mouse between monitors, WM_WINDOWPOSCHANGED is not sent. The change in scale factor when crossing monitor boundaries does trigger WM_PAINT, but also WM_NCPAINT which is sent way less often than WM_PAINT. Hence I suggest to update ScintillaWin::WndProc() by moving the WM_NCPAINT case down to WM_WINDOWPOSCHANGED....
Invalidate render targets when detecting a changed scaling factor
I've updated this merge request in order to integrate the recent changes to Scintilla's support for font stretch.
FontStretch::Default (0) in order to support DirectWrite font resolving from GDI.
merge default 5.5.2