Closed Bug 348577 Opened 16 years ago Closed 14 years ago

Implement MathML <mtable> with display:inline-table (mtable has incorrect baseline)


(Core :: MathML, defect, P3)






(Reporter: rbs, Assigned: wgianopoulos)



(Keywords: regression)


(4 files, 3 obsolete files)

Currently <mtable> is implemented with wrappers that force it to behave as an inline-table. Its implementation should be revisited when display:inline-table is supported (bug 18217). This might also led to removing the code added for bug 344281.
Blocks: 356164
nsIFrame::GetBaseline() now positions non-inline blocks above the baseline, so the ascent of the mtable is being ignored and they appear twice as high as they should be.

Using display: inline-table fixes this.
Flags: blocking1.9?
Priority: -- → P2
Depends on: 401178
Blocks: 371448
Depends on: 391052
Karl - should this block?
Attached image screenshot of matrices
If this bug is not fixed, then contents of matrices will be misaligned, as seen on the right, which should look like the matrix on the left.
So I think this should block.
Assignee: rbs → mozbugz
There shouldn't be empty space to the right of the bottom half of the brace.
... and this is not hard to fix.
The symptoms above are a regression from bug 367332 because it is since those changes that non-inline frames don't really have a baseline (which is reasonable), but without changes in bug 367332 we wouldn't have had inline-table  to fix this.  Now we need to use inline-table to get the desired baseline.
Depends on: 367332
Keywords: regression
Priority: P2 → P3
Blocks: 324857
Flags: blocking1.9? → blocking1.9+
Summary: Implement MathML <mtable> with display:inline-table → Implement MathML <mtable> with display:inline-table (mtable has incorrect baseline)
Attached patch WIP patch (obsolete) — Splinter Review
This is a work-in-progress.  Still some things to iron out.
Assignee: mozbugz → wgianopoulos
Comment on attachment 295545 [details] [diff] [review]
WIP patch

Oops.  uploaded the wrong file
Attachment #295545 - Attachment is obsolete: true
Attached patch WIP patch (obsolete) — Splinter Review
Blocks: 391052
No longer depends on: 391052
Attached patch patch v1 (obsolete) — Splinter Review
Attachment #295546 - Attachment is obsolete: true
Attached patch patch v2Splinter Review
This patch includes the code to backout bug 344281 and bug 355993.
Attachment #295624 - Attachment is obsolete: true
Attachment #295628 - Flags: superreview?(bzbarsky)
Attachment #295628 - Flags: review?
Attachment #295628 - Flags: review? → review?(rbs)
Comment on attachment 295628 [details] [diff] [review]
patch v2

>Index: layout/base/nsCSSFrameConstructor.h
>-   * positioned or floated, in which case its placeholder will be in
>+   * positioned, in which case its placeholder will be in aChildItems).

Please don't lose the "or floated" part.

The rest of this looks great!  sr=bzbarsky
Attachment #295628 - Flags: superreview?(bzbarsky) → superreview+
Attachment #295628 - Flags: review?(rbs) → review+
Addresses review comments.
Keywords: checkin-needed
Checked in, thanks very much!

1.1447      mozilla/layout/base/nsCSSFrameConstructor.cpp
1.250       mozilla/layout/base/nsCSSFrameConstructor.h
1.22        mozilla/layout/mathml/base/src/nsMathMLmrowFrame.cpp
1.15        mozilla/layout/mathml/base/src/nsMathMLmrowFrame.h
1.72        mozilla/layout/mathml/base/src/nsMathMLmtableFrame.cpp
1.37        mozilla/layout/mathml/content/src/mathml.css
Closed: 14 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9 M11
You need to log in before you can comment on or make changes to this bug.