Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upIncorrect layout for inline-block elements in RTL flows #6092
Comments
|
Not sure if this deserves a separate bug or not, the date is incorrect as well (something from bug 459035; https://bugzilla.mozilla.org/show_bug.cgi?id=459035 ) Firefox doesn't get it right either, and we're not consistent: |
|
I don't know exactly where this is going wrong, but it's probably something like this: In various places we need to translate logical sizes or coordinates from a parent box's coordinate system to a child's coordinate system, or vice-versa. For example, if the parent is RTL but the child is LTR, then to determine the child's inline-start (left) position, we need to look at the parent's inline-end (left) padding. Sometimes this means we change logic based on whether the parent and child writing modes have the same inline direction or opposite directions. Examples: servo/components/layout/block.rs Line 1396 in 50e4171 servo/components/layout/block.rs Line 2477 in 50e4171 I believe my theory when I wrote the initial comment above was that we were looking at the wrong parent. In the test case, everything under servo/components/layout/inline.rs Line 1425 in 75f39b4 |

In this test case, the div should appear at the top right of the page. In Servo it does not appear anywhere on-screen:
This is probably caused by similar issues to #6006.