[webkit-reviews] review requested: [Bug 24168] RTL: Home/End key does not behave correctly in mixed bidi text in RTL document : [Attachment 29402] patch w/ Layout test

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Apr 10 15:10:26 PDT 2009


Xiaomei Ji <xji at chromium.org> has asked  for review:
Bug 24168: RTL: Home/End key does not behave correctly in mixed bidi text in
RTL document
https://bugs.webkit.org/show_bug.cgi?id=24168

Attachment 29402: patch w/ Layout test
https://bugs.webkit.org/attachment.cgi?id=29402&action=review

------- Additional Comments from Xiaomei Ji <xji at chromium.org>
Hi Mitz,

Thanks for your inputs on previous patch. They are very helpful!

I changed to reconstruct the logic order from line boxes by reversing L2 phase
in Unicode Bidi algorithm.

I am reconstructing the logic order of leave boxes only. I think that should be
enough.

But I still have 3 questions:
1. I am implementing the logic "home/end' key functionality in "move" +
"right"/"left", but I think it should be done in "move" + "forward"/"backward".


2. The reconstruction is done in editing per home/end operation.
I am not sure whether it should be done in rendering code, after the whole
structure of a line is fully constructed? and in-validate it if line structure
changed? So it could save some performance overhead.

3. I am caching the logic chain in InlineBox because:
a) I need the chain (at least the 'next') for continuing reverse boxes during
reconstruct logic order from low bidi level to high bidi level.
b) I need the chain to get the 'next' (or 'prev') line box if the
startBox->renderer()->node() == NULL (or the endBox->renderer()->node() ==
NULL) in getLogicStartBoxAndNode() (or getLogicEndBoxAndNode()).


More information about the webkit-reviews mailing list