The problem is in Layout-TNG-Compute.cpp, where kerning was implicitly assumed to be LTR. There are several other
unrelated changes in my version of that file at the moment so a patch would be confusing. However, the change to fix this
is easy, In _measureUnbrokenSpan change this:
if (span->start.iter_span->dx._set && span->start.char_byte == 0){ span->width += span->start.iter_span->dx.computed;
The problem is in Layout- TNG-Compute. cpp, where kerning was implicitly assumed to be LTR. There are several other nSpan change this:
unrelated changes in my version of that file at the moment so a patch would be confusing. However, the change to fix this
is easy, In _measureUnbroke
if (span-> start.iter_ span->dx. _set && span->start. char_byte == 0){
span- >width += span->start. iter_span- >dx.computed;
to this:
if (span-> start.iter_ span->dx. _set && span->start. char_byte == 0){
if( para.direction == RIGHT_TO_LEFT){ span->width -= span->start. iter_span- >dx.computed; } iter_span- >dx.computed; }
else { span->width += span->start.