[Lazarus] Rendering Issue Emoji for HTML List Items

Martok listbox at martoks-place.de
Mon Oct 16 15:43:58 CEST 2017


Hi all,

when I checked what HTML2TextRenderer uses to translate list items, I found that
since rev 55743 it uses U+26AB MEDIUM BLACK CIRCLE ⚫ and U+26AA MEDIUM WHITE
CIRCLE ⚪. There seems to be some issue with these codepoints when rendering them
to a Canvas on win32 widgetset: they only render correctly in an application
when they are not the first character in a sequence OR the host is Win10, but
never in the Lazarus SynEdit.

The slightly smaller versions U+25CF BLACK CIRCLE ● and U+25CB WHITE CIRCLE ○
work fine.

Example (make sure to save in UTF8, default in Lazarus):
-------------------
procedure TForm1.FormPaint(Sender: TObject);
var
  s: string;
begin
  s:= '●⚫';
  Canvas.TextOut(100,100,s);
  s:= '⚫';
  Canvas.TextOut(100,150,s);
end;
-------------------
The first TextOut produces 2 circles (the first one being smaller), the second a
"missing glyph" box. The second line will also do that in the code editor. It
may work in the application on Win10, but not on older systems.

Could someone please test this on other widgetsets, so I have an idea
whether/what/where to report this?
Thanks!


-- 
Regards,
Martok

Ceterum censeo b32079 esse sanandam.



More information about the Lazarus mailing list