View Issue Details

IDProjectCategoryView StatusLast Update
0038820LazarusWidgetsetpublic2021-04-30 16:57
ReporterCudaText man Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
OSWin10 x64 
Summary0038820: Windows: SynEdit and all other controls cannot render the U+22EE unicode math char
Descriptionhttps://www.compart.com/en/unicode/U+22EE
copy the char from there.
paste it into IDE source editor or any other custom-painted control. with monospaced font!
it's rendered as 'box with ? inside'.
I could show this char OK in CudaText only when I set 'Arial Unicode' font (not monospaced)
I could show this char in Windows Notepad.
TagsNo tags attached.
Fixed in Revision
LazTarget-
WidgetsetWin32/Win64
Attached Files

Activities

Michl

2021-04-28 22:52

developer   ~0130647

This is not a problem of Lazarus, but your font. Install and use a font, that support this character. See e.g. https://www.fileformat.info/info/unicode/char/22ee/fontsupport.htm. Download a monospace font (just tested, e.g. FreeMono is working), install it and select it as your font (MainMenu -> Tools -> Options -> Editor -> Display -> Default editor font -> select your font).

CudaText man

2021-04-28 23:05

reporter   ~0130648

The same fonts behave differently in IDE and Windows Notepad.
Consolas font / DejaVu Sans Mono
- Notepad shows that char
- IDE cannot show that char
Maybe IDE can be improved here?

CudaText man

2021-04-29 17:49

reporter   ~0130662

Additional proof pic. CudaText vs Notepad. Windows7.
ellipsises.png (25,134 bytes)   
ellipsises.png (25,134 bytes)   

Martin Friebe

2021-04-29 23:35

manager   ~0130667

Windows has different textout API.
It is possible (though just guessing) that they act different (e.g. when it comes to font chaining/linking).

If it is linked to any API, then changing that API in use is going to be a bigger project.

CudaText man

2021-04-30 00:18

reporter   ~0130668

Ok, understood. maybe Notepad uses Uniscribe API. or smth. You can close this.

Martok

2021-04-30 16:57

reporter   ~0130679

Actually, this seems to be a SynEdit bug/feature/design choice?

With test string "22EF 22EE 22EF 22EE" on Win8.1, TEdit (OS drawn) and TLabel (LCL drawn) render the text, while TSynEdit does not.
Judging by how both instances of 22EE are clearly the same *glyph* despite having different fonts set, I think this is GDI doing glyph substitution, which seems to be disabled by SynEdit?
uniglyphs.png (3,469 bytes)   
uniglyphs.png (3,469 bytes)   

Issue History

Date Modified Username Field Change
2021-04-28 22:21 CudaText man New Issue
2021-04-28 22:52 Michl Assigned To => Michl
2021-04-28 22:52 Michl Status new => resolved
2021-04-28 22:52 Michl Resolution open => no change required
2021-04-28 22:52 Michl LazTarget => -
2021-04-28 22:52 Michl Widgetset Win32/Win64 => Win32/Win64
2021-04-28 22:52 Michl Note Added: 0130647
2021-04-28 23:05 CudaText man Note Added: 0130648
2021-04-28 23:06 CudaText man Status resolved => assigned
2021-04-28 23:06 CudaText man Resolution no change required => open
2021-04-28 23:30 Michl Assigned To Michl =>
2021-04-28 23:31 Michl Status assigned => new
2021-04-28 23:31 Michl Widgetset Win32/Win64 => Win32/Win64
2021-04-29 17:49 CudaText man Note Added: 0130662
2021-04-29 17:49 CudaText man File Added: ellipsises.png
2021-04-29 23:35 Martin Friebe Note Added: 0130667
2021-04-30 00:18 CudaText man Note Added: 0130668
2021-04-30 16:57 Martok Note Added: 0130679
2021-04-30 16:57 Martok File Added: uniglyphs.png