Michael Staszewski:
> Our application uses GDI Scaling which can be configured by compiler option or by overriding the High DPI scaling behavior of the executable and setting it to System (Enhanced).
I recommend DPI aware mode and it's less likely that fixes and improvements will be made to scaling.
> With some font/size combinations and when the technology property is set to SC_TECHNOLOGY_DEFAULT there are various issues including...
SC_TECHNOLOGY_DIRECTWRITE is now the focus of development effort.
> … however, the DirectWrite technologies enable font ligatures.
>
> We surface Font Ligatures as an option in our product and when enabled we use DirectWrite; when disabled we use the Default technology. SciTE doesn't appear to show ligatures when using a suitable font (Fira Code) and I don't see an option for disabling it.
SciTE has a "technology" setting corresponding to the API mentioned above.
> • Is this GDI Scaling issue a defect or just a known issue/limitation?
While there is some misplacement for me, it is weaker than the images. The System and Application modes appear better than System (Enhanced).
It can be considered a defect if you want but that doesn't mean that anyone will fix it. There are better supported modes that should be preferred.
> • Is there a way to disable font ligatures and still use the DirectWrite API?
It is likely that IDWriteTypography::AddFontFeature in conjunction with a feature tag like DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES may control this. For Scintilla, there would have to be some abstraction to produce a cross-platform API. There have been similar requests before, including one for surfacing pango_attr_font_features_new for use on GTK.
Neil