Overall, the test for cancel is probably redundant for all scenarios. But to limit impact, I'm keeping it for most scenarios, except for the delete.
Source commit: c24c339bd5c5621a74c356b8189487e35dc2ab41
– Control's Canvas does not have Font updated when painting, so it needs to be set explicitly in some places
– Page control drawing was not only incompatible, but broken in general, so it was refactored – giving up on trying to make it 100% mimic system drawing
– CM_DPICHANGED replaced with OnAfterMonitorDpiChanged for form-level scaling. Not really necessary, just for style. Though it is not called for initial resize (at least when starting on primary monitor with temporary non-system DPI)
– OnResize is not called for DPI change, so in some instances, some OnResize call was duplicated in OnAfterMonitorDpiChanged/CM_DPICHANGED
– Scaling of thirdparty box still does not work correctly (but Updates box works??)
– Scaling on primary monitor with temporary non-system DPI is bad
– TTreeView enabled DPI scaling when using Images that is not Scaled
– Discaring obsolete FSiteButtonsPadding workaround
– Controls programmatically added to form are automatically scaled to the form's DPI (relevant for message boxes)
Source commit: a86dddbfada30a5bc409687489bdcd12842050af
https://winscp.net/tracker/2241
Desktop font with specific timing of handle creating breaks anchoring of the list view. Delegating the anchoring to a parent mundane panel solves it.
Source commit: d00816d5743ca2bdeeabe7d128a620635100ab1e
(including mechanism to inject a different control implementation + as I needed to add an header include to most form header files, I reordered include sections along a bit)
Source commit: aa2a1b6f5daf70865c0c87c0733aad1be4825b83