Description
HarfBuzzTextShaper is breaking bidi because it splits text into font runs before shaping then calls GuessSegmentProperties() on partial fragments.
this causes incorrect RTL and LTR ordering for mixed text like arabic with english.
direction should be set explicitly per bidi run and shaping should happen on full directional runs before any font splitting
Here


and so I turned EnableBiDi to disabled and the result is Latin text became incorrectly reversed :
XNA Client Version
2.13.1
Steps To Reproduce
1.added arabic translation with font
2.edit font.ini to enable "EnabledBidi"
3.open client and looks incorrect bidi
...
Expected Behaviour
Mixed RTL and LTR text should render correctly according to unicode BiDi rules with proper visual ordering and correct placement of punctuation
For example text like
hi (مرحبا)
should display in a natural readable order.
Actual Behaviour
the client renders incorrect BiDi layout for mixed RTL and LTR text
causing wrong ordering and misplaced punctuation when displaying strings such as hi ((مرحبا or )مرحبا )
Additional Context
here log
client.log
Checklist
Description
HarfBuzzTextShaper is breaking bidi because it splits text into font runs before shaping then calls


GuessSegmentProperties()on partial fragments.this causes incorrect RTL and LTR ordering for mixed text like arabic with english.
direction should be set explicitly per bidi run and shaping should happen on full directional runs before any font splitting
Here
and so I turned EnableBiDi to disabled and the result is Latin text became incorrectly reversed :
XNA Client Version
2.13.1
Steps To Reproduce
1.added arabic translation with font
2.edit font.ini to enable "EnabledBidi"
3.open client and looks incorrect bidi
...
Expected Behaviour
Mixed RTL and LTR text should render correctly according to unicode BiDi rules with proper visual ordering and correct placement of punctuation
For example text like
hi (مرحبا)
should display in a natural readable order.
Actual Behaviour
the client renders incorrect BiDi layout for mixed RTL and LTR text
causing wrong ordering and misplaced punctuation when displaying strings such as hi ((مرحبا or )مرحبا )
Additional Context
here log
client.log
Checklist