Closed Bug 299063 Opened 20 years ago Closed 19 years ago

skipped border edges on split (broken) inlines on wrong side for RTL

Categories

(Core :: Layout: Text and Fonts, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: dbaron, Assigned: dbaron)

References

(Blocks 1 open bug)

Details

(Keywords: rtl)

Attachments

(2 files)

When an inline element with a border is split across multiple lines, the borders
are supposed to be open at the continuation.  For RTL inlines, the border is
open at the wrong end.

Steps to reproduce: load attached testcase

Expected results: the two halves are mirror images of each other

Actual results: the RTL case has the borders open at the wrong end (in addition
to some other bugs)
I plan to check a modified version of this (since more changes will be needed
there) into REFLOW_20050429_BRANCH.
(But it won't do anything there either since embedding levels don't seem to be
set on inlines; fixing that is bug 299065.)
Actually, according to http://www.w3.org/TR/CSS21/box.html#q11 , that's the
wrong way to fix it.  We should actually depend on the 'direction' property of
the frame.  (But we should still split the frame as described in bug 299065.)
No longer depends on: 299065
...but getting the leftmost piece on the first line might be a bit tricky.
Depends on: 299065
Although I actually think that would be confusing to read, and it makes more
sense to have the padding, border, and margin at the start of the element (and
potentially have left padding twice and right not at all, or vice-versa).
...except there would be no way to make the *-start and *-end versions work that
way, since that computation is based on 'direction' rather than bidi reordering.
=> All/All
OS: Linux → All
Hardware: PC → All
Also need to fix nsInlineFrame::ReflowFrames:

    // Compute final width
    aMetrics.width = size.width;
    if (nsnull == mPrevInFlow) {
      aMetrics.width += aReflowState.mComputedBorderPadding.left;
    }
    if (NS_FRAME_IS_COMPLETE(aStatus)) {
      aMetrics.width += aReflowState.mComputedBorderPadding.right;
    }
Depends on: 328168
Bug 328168 describes a more general case of this bug.
Blocks: 137995
Fixed by Haamed's patch for bug 328168.
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Mass-assigning the new rtl keyword to RTL-related (see bug 349193).
Keywords: rtl
Component: Layout: BiDi Hebrew & Arabic → Layout: Text
QA Contact: zach → layout.fonts-and-text
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: