<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">On 03/10/2020 16:34, Alexey Tor. via
lazarus wrote:<br>
</div>
<blockquote type="cite"
cite="mid:3bc622bc-89fc-6314-facb-3accc5739b53@ya.ru">It's not
very simple. see file
<br>
<a class="moz-txt-link-freetext" href="https://github.com/Alexey-T/ATSynEdit/blob/master/atsynedit/atsynedit_canvasproc.pas">https://github.com/Alexey-T/ATSynEdit/blob/master/atsynedit/atsynedit_canvasproc.pas</a>
<br>
and search for "ligatures" in all places. Unit has special code
for win32.
<br>
</blockquote>
<br>
Actually might be easier than thought....<br>
<blockquote type="cite">
<table class="highlight tab-size js-file-line-container"
data-tab-size="8" data-paste-markdown-skip="">
<tbody>
<tr>
<td id="LC252" class="blob-code blob-code-inner
js-file-line">
<br>
</td>
</tr>
<tr>
</tr>
<tr>
<td id="LC253" class="blob-code blob-code-inner
js-file-line"> <span class="pl-k">if</span>
GetCharacterPlacementW(DC, PWChar(Str), Length(Str), <span
class="pl-c1">0</span>, @CharPlaceInfo,
GCP_LIGATE)<> <span class="pl-c1">0</span> <span
class="pl-k">then</span></td>
</tr>
<tr>
</tr>
<tr>
<td id="LC254" class="blob-code blob-code-inner
js-file-line"> Result:= Windows.ExtTextOutW(DC, X, Y,
ETO_CLIPPED <span class="pl-k">or</span> ETO_OPAQUE <span
class="pl-k">or</span> ETO_GLYPH_INDEX, Rect,
Pointer(Glyphs), Length(Glyphs), Dx)</td>
</tr>
<tr>
</tr>
<tr>
<td id="LC255" class="blob-code blob-code-inner
js-file-line"> <span class="pl-k">else</span></td>
</tr>
<tr>
</tr>
<tr>
<td id="LC256" class="blob-code blob-code-inner
js-file-line"> Result:= Windows.ExtTextOutW(DC, X, Y,
ETO_CLIPPED <span class="pl-k">or</span> ETO_OPAQUE,
Rect, PWChar(Str), Length(Str), Dx);</td>
</tr>
<tr>
</tr>
</tbody>
</table>
</blockquote>
<br>
- If indeed the DX array is still applicable with the glyphs....<br>
- And if that is supported on all widgetsets...<br>
- And as long as the font does still behave monospaced ...<br>
<br>
</body>
</html>