| Ticket UUID: | d41b4dc3a6cce62cb4fa281ed0b0b90886f82dca | |||
| Title: | Windows: last cluster of a drawn range loses its trailing glyphs (combining marks) | |||
| Type: | Bug | Version: | trunk | |
| Submitter: | serhiy.storchaka | Created on: | 2026-09-19 10:30:51 | |
| Subsystem: | 47. Win Fonts | Assigned To: | aku | |
| Priority: | 5 Medium | Severity: | Minor | |
| Status: | Closed | Last Modified: | 2026-09-30 18:32:27 | |
| Resolution: | Fixed | Closed By: | oehhar | |
| Closed on: | 2026-09-30 18:32:27 | |||
| Description: |
In 9.1 on Windows, Tk_DrawCharsInContext() draws the glyphs [min(logClust), max(logClust)+1) for the requested character range, i.e. only the first glyph of the last cluster in the range. The remaining glyphs of that cluster (combining marks) are lost. In RTL runs logClust points at the highest glyph of a cluster, so the glyphs below it are lost too. Examples (canvas or text widget, Segoe UI / Nirmala UI):
Precomposed glyphs (é, ñ in Segoe UI) hide the problem, and font measure is not affected. | |||
| User Comments: |
oehhar added on 2026-09-30 18:32:27:
Here is my test script which uses the arabic example above:
pack [label .l -text "سبَ" -font {-family "Segoe UI" -size 72}]
The test result is in the attached image. You can see, that the final flying bar is only painted with the patch. Merged to main by [2c6b901e]. Bug closed. Thanks Serhiy and Kevin ! Take care, Harald serhiy.storchaka added on 2026-09-19 10:36:46: Fixed in [34fbe71048] (branch win-draw-last-cluster-glyphs). | |||
Attachments:
- arabic_left_without_right_with_patch.png [download] added by oehhar on 2026-09-30 18:35:32. [details]
