Re: [svgwg] Unclear step in Text Layout Algorithm (section 11.5) (#617)

I've had time to look at this more closely. The problem seems to be that the algorithm assumes that 'dx' is not applied when 'x' is set for a given code point. Chrome/Firefox/Inkscape do apply the corresponding 'dx' when 'x' is set (ignoring previous 'dx' values). Changing the calculation in 6.3.3 to include 'dx' seems to fix the problem.

I find the variable names to be confusing and inconsistent. I propose renaming all in the form of variable[i].x. I propose also using shift.dx and result[i].dx in section 4 and shift.x and result[i].x in section 6. With these changes in names:

Section 4.2.2 should be:
  Let shift.dx = shift.dx + resolve[i].dx
Section 4.2.3 should be:
  Let result[i].dx = CSS_positions[i].x + shift.dx
Section 6.3.1 should be:
  If resolve[i].x is set, let shift.x = resolve[i].x + resolve[i].dx - result[i].dx
Section 6.3.3 should be:
  Let result[i].x = result[i].dx + shift.x

Similar changes apply to 'y'.



-- 
GitHub Notification of comment by Tavmjong
Please view or discuss this issue at https://github.com/w3c/svgwg/issues/617#issuecomment-456187562 using your GitHub account

Received on Monday, 21 January 2019 20:12:40 UTC