[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.22-985-g3c00f00
eric at webkit.org
eric at webkit.org
Wed Mar 17 18:24:44 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit 41f0693d01caca1409103b08c927293df5090a51
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sat Mar 6 02:52:45 2010 +0000
2010-03-05 Alex Milowski <alex at milowski.com>
Reviewed by Kenneth Rohde Christiansen.
Added tests for row and operator stretching.
Updated over, underover, and subsup due to row/operators in use.
* mathml/presentation/mo.xhtml: Added.
* mathml/presentation/row.xhtml: Added.
* platform/mac/mathml/presentation/mo-expected.checksum: Added.
* platform/mac/mathml/presentation/mo-expected.png: Added.
* platform/mac/mathml/presentation/mo-expected.txt: Added.
* platform/mac/mathml/presentation/over-expected.checksum:
* platform/mac/mathml/presentation/over-expected.png:
* platform/mac/mathml/presentation/over-expected.txt:
* platform/mac/mathml/presentation/row-expected.checksum: Added.
* platform/mac/mathml/presentation/row-expected.png: Added.
* platform/mac/mathml/presentation/row-expected.txt: Added.
* platform/mac/mathml/presentation/subsup-expected.txt:
* platform/mac/mathml/presentation/underover-expected.checksum:
* platform/mac/mathml/presentation/underover-expected.png:
* platform/mac/mathml/presentation/underover-expected.txt:
2010-03-05 Alex Milowski <alex at milowski.com>
Reviewed by Kenneth Rohde Christiansen.
Added support for row layout with stretchy operators and
adjusted the over spacing for over and underover accordingly.
Tests: mathml/presentation/mo.xhtml
mathml/presentation/row.xhtml
* WebCore.xcodeproj/project.pbxproj:
* mathml/MathMLInlineContainerElement.cpp:
* mathml/MathMLTextElement.cpp:
* mathml/RenderMathMLMath.cpp: Added.
* mathml/RenderMathMLMath.h: Added.
* mathml/RenderMathMLOperator.cpp: Added.
* mathml/RenderMathMLOperator.h: Added.
* mathml/RenderMathMLRow.cpp: Added.
* mathml/RenderMathMLRow.h: Added.
* mathml/RenderMathMLUnderOver.cpp:
* mathml/mathtags.in:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55607 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index d7d26c8..a9cf3cc 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,26 @@
+2010-03-05 Alex Milowski <alex at milowski.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added tests for row and operator stretching.
+ Updated over, underover, and subsup due to row/operators in use.
+
+ * mathml/presentation/mo.xhtml: Added.
+ * mathml/presentation/row.xhtml: Added.
+ * platform/mac/mathml/presentation/mo-expected.checksum: Added.
+ * platform/mac/mathml/presentation/mo-expected.png: Added.
+ * platform/mac/mathml/presentation/mo-expected.txt: Added.
+ * platform/mac/mathml/presentation/over-expected.checksum:
+ * platform/mac/mathml/presentation/over-expected.png:
+ * platform/mac/mathml/presentation/over-expected.txt:
+ * platform/mac/mathml/presentation/row-expected.checksum: Added.
+ * platform/mac/mathml/presentation/row-expected.png: Added.
+ * platform/mac/mathml/presentation/row-expected.txt: Added.
+ * platform/mac/mathml/presentation/subsup-expected.txt:
+ * platform/mac/mathml/presentation/underover-expected.checksum:
+ * platform/mac/mathml/presentation/underover-expected.png:
+ * platform/mac/mathml/presentation/underover-expected.txt:
+
2010-03-05 Dean Jackson <dino at apple.com>
Reviewed by Simon Fraser.
diff --git a/LayoutTests/mathml/presentation/mo.xhtml b/LayoutTests/mathml/presentation/mo.xhtml
new file mode 100644
index 0000000..7bedadf
--- /dev/null
+++ b/LayoutTests/mathml/presentation/mo.xhtml
@@ -0,0 +1,60 @@
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>Over</title>
+<style type='text/css'>
+</style>
+</head>
+<body>
+<p id='t1'>operator:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mo mathsize='small'>∑</mo>
+</math>
+operator:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mo mathsize='small'>B</mo>
+</math>
+</p>
+<p id='t2'>operator:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mo mathsize='normal'>∑</mo>
+</math>
+operator:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mo mathsize='normal'>B</mo>
+</math>
+</p>
+<p id='t3'>operator:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mo mathsize='big'>∑</mo>
+</math>
+operator:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mo mathsize='big'>∑</mo>
+</math>
+</p>
+<p id='t4'>operator:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mo mathsize='small'>∑</mo>
+<mo mathsize='normal'>∑</mo>
+<mo mathsize='big'>∑</mo>
+</math>
+operator:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mo mathsize='small'>B</mo>
+<mo mathsize='normal'>B</mo>
+<mo mathsize='big'>B</mo>
+</math>
+</p>
+<p id='t5'>operator:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mo>|</mo>
+<mo>∫</mo>
+<mo>{</mo>
+<mo>[</mo>
+<div style="display: inline-block; height: 50px; width: 50px; border: 1px solid black; vertical-align: middle;"/>
+<mo>]</mo>
+<mo>}</mo>
+</math>
+</p>
+</body>
+</html>
diff --git a/LayoutTests/mathml/presentation/row.xhtml b/LayoutTests/mathml/presentation/row.xhtml
new file mode 100644
index 0000000..f384617
--- /dev/null
+++ b/LayoutTests/mathml/presentation/row.xhtml
@@ -0,0 +1,118 @@
+<html xmlns='http://www.w3.org/1999/xhtml'>
+<head>
+<title>Rows and Operators</title>
+<style type="text/css">
+mo {
+ background-color: rgb(200,200,200);
+}
+</style>
+</head>
+<body>
+<p>
+<math xmlns='http://www.w3.org/1998/Math/MathML'><mi>x</mi><mo>+</mo><mn>1</mn></math>
+</p>
+<p id='t1'>
+16px:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>{</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle;height: 16px; width: 16px; background-color: rgb(0,255,0)'/><mo>}</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>[</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle;height: 16px; width: 16px; background-color: rgb(0,255,0)'/><mo>]</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>(</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 16px; width: 16px; background-color: rgb(0,255,0)'/><mo>)</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>|</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 16px; width: 16px; background-color: rgb(0,255,0)'/><mo>|</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>∫</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; vertical-align: middle; height: 16px; width: 16px; background-color: rgb(0,255,0);'/></mrow>
+</math>
+</p>
+<p id='t1'>
+24px:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>{</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 24px; width: 24px; background-color: rgb(0,255,0)'/><mo>}</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>[</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 24px; width: 24px; background-color: rgb(0,255,0)'/><mo>]</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>(</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 24px; width: 24px; background-color: rgb(0,255,0)'/><mo>)</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>|</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 24px; width: 24px; background-color: rgb(0,255,0)'/><mo>|</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>∫</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 24px; width: 24px; background-color: rgb(0,255,0)'/></mrow>
+</math>
+</p>
+<p id='t1'>
+32px:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>{</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 32px; width: 32px; background-color: rgb(0,255,0)'/><mo>}</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>[</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 32px; width: 32px; background-color: rgb(0,255,0)'/><mo>]</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>(</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 32px; width: 32px; background-color: rgb(0,255,0)'/><mo>)</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>|</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 32px; width: 32px; background-color: rgb(0,255,0)'/><mo>|</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>∫</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 32px; width: 32px; background-color: rgb(0,255,0)'/></mrow>
+</math>
+</p>
+<p id='t1'>
+48px:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>{</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 48px; width: 48px; background-color: rgb(0,255,0)'/><mo>}</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>[</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 48px; width: 48px; background-color: rgb(0,255,0)'/><mo>]</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>(</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 48px; width: 48px; background-color: rgb(0,255,0)'/><mo>)</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>|</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 48px; width: 48px; background-color: rgb(0,255,0)'/><mo>|</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>∫</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 48px; width: 48px; background-color: rgb(0,255,0)'/></mrow>
+</math>
+</p>
+<p id='t1'>
+120px:
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>{</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 120px; width: 120px; background-color: rgb(0,255,0)'/><mo>}</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>[</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 120px; width: 120px; background-color: rgb(0,255,0)'/><mo>]</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>(</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 120px; width: 120px; background-color: rgb(0,255,0)'/><mo>)</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>|</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 120px; width: 120px; background-color: rgb(0,255,0)'/><mo>|</mo></mrow>
+</math>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow><mo>∫</mo><div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 120px; width: 120px; background-color: rgb(0,255,0)'/></mrow>
+</math>
+</p>
+<p id='t5'>
+<math xmlns='http://www.w3.org/1998/Math/MathML'>
+<mrow>
+<mo>(</mo>
+<div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 40px; width: 40px; background-color: rgb(0,255,0)'/>
+<mo>,</mo>
+<div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 40px; width: 40px; background-color: rgb(0,255,0)'/>
+<mo>,</mo>
+<div xmlns='http://www.w3.org/1999/xhtml' style='display: inline-block; vertical-align: middle; height: 40px; width: 40px; background-color: rgb(0,255,0)'/>
+<mo>)</mo>
+</mrow>
+</math>
+</p>
+</body>
+</html>
diff --git a/LayoutTests/platform/mac/mathml/presentation/mo-expected.checksum b/LayoutTests/platform/mac/mathml/presentation/mo-expected.checksum
new file mode 100644
index 0000000..6e9bda5
--- /dev/null
+++ b/LayoutTests/platform/mac/mathml/presentation/mo-expected.checksum
@@ -0,0 +1 @@
+4c87fc1d1f541c5fd9c9336f94d4e350
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/mathml/presentation/mo-expected.png b/LayoutTests/platform/mac/mathml/presentation/mo-expected.png
new file mode 100644
index 0000000..645aefe
Binary files /dev/null and b/LayoutTests/platform/mac/mathml/presentation/mo-expected.png differ
diff --git a/LayoutTests/platform/mac/mathml/presentation/mo-expected.txt b/LayoutTests/platform/mac/mathml/presentation/mo-expected.txt
new file mode 100644
index 0000000..d46ae1f
--- /dev/null
+++ b/LayoutTests/platform/mac/mathml/presentation/mo-expected.txt
@@ -0,0 +1,265 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x234
+ RenderBlock {html} at (0,0) size 800x234
+ RenderBody {body} at (8,16) size 784x202
+ RenderBlock {p} at (0,0) size 784x18
+ RenderText {#text} at (0,0) size 60x18
+ text run at (0,0) width 60: "operator: "
+ RenderBlock {math} at (60,3) size 9x12
+ RenderBlock {mo} at (0,2) size 9x12
+ RenderBlock {mo} at (0,0) size 9x12
+ RenderText {mo} at (0,0) size 9x12
+ text run at (0,0) width 9: "\x{2211}"
+ RenderText {#text} at (69,0) size 64x18
+ text run at (69,0) width 64: " operator: "
+ RenderBlock {math} at (133,3) size 8x12
+ RenderBlock {mo} at (0,2) size 8x12
+ RenderBlock {mo} at (0,0) size 8x12
+ RenderText {mo} at (0,0) size 8x12
+ text run at (0,0) width 8: "B"
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {p} at (0,34) size 784x20
+ RenderText {#text} at (0,0) size 60x18
+ text run at (0,0) width 60: "operator: "
+ RenderBlock {math} at (60,3) size 11x16
+ RenderBlock {mo} at (0,0) size 11x16
+ RenderBlock {mo} at (0,0) size 11x16
+ RenderText {mo} at (0,0) size 11x16
+ text run at (0,0) width 11: "\x{2211}"
+ RenderText {#text} at (71,0) size 64x18
+ text run at (71,0) width 64: " operator: "
+ RenderBlock {math} at (135,3) size 11x17
+ RenderBlock {mo} at (0,0) size 11x17
+ RenderBlock {mo} at (0,0) size 11x17
+ RenderText {mo} at (0,1) size 11x16
+ text run at (0,1) width 11: "B"
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {p} at (0,70) size 784x24
+ RenderText {#text} at (0,1) size 60x18
+ text run at (0,1) width 60: "operator: "
+ RenderBlock {math} at (60,0) size 19x24
+ RenderBlock {mo} at (0,0) size 19x24
+ RenderBlock {mo} at (1,0) size 17x24
+ RenderText {mo} at (0,0) size 17x24
+ text run at (0,0) width 17: "\x{2211}"
+ RenderText {#text} at (79,1) size 64x18
+ text run at (79,1) width 64: " operator: "
+ RenderBlock {math} at (143,0) size 19x24
+ RenderBlock {mo} at (0,0) size 19x24
+ RenderBlock {mo} at (1,0) size 17x24
+ RenderText {mo} at (0,0) size 17x24
+ text run at (0,0) width 17: "\x{2211}"
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {p} at (0,110) size 784x24
+ RenderText {#text} at (0,1) size 60x18
+ text run at (0,1) width 60: "operator: "
+ RenderBlock {math} at (60,0) size 39x24
+ RenderBlock {mo} at (0,6) size 9x12
+ RenderBlock {mo} at (0,0) size 9x12
+ RenderText {mo} at (0,0) size 9x12
+ text run at (0,0) width 9: "\x{2211}"
+ RenderBlock {mo} at (9,4) size 11x16
+ RenderBlock {mo} at (0,0) size 11x16
+ RenderText {mo} at (0,0) size 11x16
+ text run at (0,0) width 11: "\x{2211}"
+ RenderBlock {mo} at (20,0) size 19x24
+ RenderBlock {mo} at (1,0) size 17x24
+ RenderText {mo} at (0,0) size 17x24
+ text run at (0,0) width 17: "\x{2211}"
+ RenderText {#text} at (99,1) size 64x18
+ text run at (99,1) width 64: " operator: "
+ RenderBlock {math} at (163,0) size 37x24
+ RenderBlock {mo} at (0,6) size 8x12
+ RenderBlock {mo} at (0,0) size 8x12
+ RenderText {mo} at (0,0) size 8x12
+ text run at (0,0) width 8: "B"
+ RenderBlock {mo} at (8,4) size 11x17
+ RenderBlock {mo} at (0,0) size 11x17
+ RenderText {mo} at (0,1) size 11x16
+ text run at (0,1) width 11: "B"
+ RenderBlock {mo} at (19,0) size 18x24
+ RenderBlock {mo} at (1,0) size 16x24
+ RenderText {mo} at (0,0) size 16x24
+ text run at (0,0) width 16: "B"
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {p} at (0,150) size 784x52
+ RenderText {#text} at (0,16) size 60x18
+ text run at (0,16) width 60: "operator: "
+ RenderBlock {math} at (60,0) size 94x52
+ RenderBlock {mo} at (0,0) size 8x54
+ RenderBlock {mo} at (8,0) size 10x54
+ RenderBlock {mo} at (18,0) size 7x54
+ RenderBlock {mo} at (25,0) size 5x54
+ RenderBlock {div} at (30,1) size 52x52 [border: (1px solid #000000)]
+ RenderBlock {mo} at (82,0) size 5x54
+ RenderBlock {mo} at (87,0) size 7x54
+ RenderText {#text} at (0,0) size 0x0
+layer at (68,166) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (68,176) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (68,186) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (68,196) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (68,206) size 8x2 scrollHeight 15
+ RenderBlock {mo} at (0,40) size 8x2
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (68,208) size 8x12 scrollHeight 15
+ RenderBlock {mo} at (0,42) size 8x12
+layer at (76,166) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{2320}"
+layer at (76,176) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (76,186) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (76,196) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (76,206) size 10x2 scrollHeight 15
+ RenderBlock {mo} at (0,40) size 10x2
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (76,208) size 10x12 scrollHeight 15
+ RenderBlock {mo} at (0,42) size 10x12
+layer at (86,166) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23A7}"
+layer at (86,176) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (86,186) size 7x1 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 7x1
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (86,187) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,21) size 7x10
+layer at (86,197) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,31) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (86,207) size 7x1 scrollHeight 15
+ RenderBlock {mo} at (0,41) size 7x1
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (86,208) size 7x12 scrollHeight 15
+ RenderBlock {mo} at (0,42) size 7x12
+layer at (93,166) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A1}"
+layer at (93,176) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (93,186) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (93,196) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (93,206) size 5x2 scrollHeight 15
+ RenderBlock {mo} at (0,40) size 5x2
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (93,208) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,42) size 5x12
+layer at (150,166) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A4}"
+layer at (150,176) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (150,186) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (150,196) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (150,206) size 5x2 scrollHeight 15
+ RenderBlock {mo} at (0,40) size 5x2
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (150,208) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,42) size 5x12
+layer at (155,166) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AB}"
+layer at (155,176) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (155,186) size 7x1 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 7x1
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (155,187) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,21) size 7x10
+layer at (155,197) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,31) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (155,207) size 7x1 scrollHeight 15
+ RenderBlock {mo} at (0,41) size 7x1
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (155,208) size 7x12 scrollHeight 15
+ RenderBlock {mo} at (0,42) size 7x12
+layer at (68,204) size 8x15 backgroundClip at (68,208) size 8x12 clip at (68,208) size 8x12 outlineClip at (68,208) size 8x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 8x12
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (76,204) size 10x15 backgroundClip at (76,208) size 10x12 clip at (76,208) size 10x12 outlineClip at (76,208) size 10x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 10x12
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{2321}"
+layer at (86,185) size 7x15 backgroundClip at (86,187) size 7x10 clip at (86,187) size 7x10 outlineClip at (86,187) size 7x10
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23A8}"
+layer at (86,204) size 7x15 backgroundClip at (86,208) size 7x12 clip at (86,208) size 7x12 outlineClip at (86,208) size 7x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23A9}"
+layer at (93,204) size 5x15 backgroundClip at (93,208) size 5x12 clip at (93,208) size 5x12 outlineClip at (93,208) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A3}"
+layer at (150,204) size 5x15 backgroundClip at (150,208) size 5x12 clip at (150,208) size 5x12 outlineClip at (150,208) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A6}"
+layer at (155,185) size 7x15 backgroundClip at (155,187) size 7x10 clip at (155,187) size 7x10 outlineClip at (155,187) size 7x10
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AC}"
+layer at (155,204) size 7x15 backgroundClip at (155,208) size 7x12 clip at (155,208) size 7x12 outlineClip at (155,208) size 7x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AD}"
diff --git a/LayoutTests/platform/mac/mathml/presentation/over-expected.checksum b/LayoutTests/platform/mac/mathml/presentation/over-expected.checksum
index 2bb0fc0..93c092f 100644
--- a/LayoutTests/platform/mac/mathml/presentation/over-expected.checksum
+++ b/LayoutTests/platform/mac/mathml/presentation/over-expected.checksum
@@ -1 +1 @@
-50c949213dabeae465a5e931bb0ae983
\ No newline at end of file
+de7bc8c50672376bf83e7f20aefea8bd
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/mathml/presentation/over-expected.png b/LayoutTests/platform/mac/mathml/presentation/over-expected.png
index a195015..6427bed 100644
Binary files a/LayoutTests/platform/mac/mathml/presentation/over-expected.png and b/LayoutTests/platform/mac/mathml/presentation/over-expected.png differ
diff --git a/LayoutTests/platform/mac/mathml/presentation/over-expected.txt b/LayoutTests/platform/mac/mathml/presentation/over-expected.txt
index dec94d2..15786f2 100644
--- a/LayoutTests/platform/mac/mathml/presentation/over-expected.txt
+++ b/LayoutTests/platform/mac/mathml/presentation/over-expected.txt
@@ -1,76 +1,93 @@
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
-layer at (0,0) size 800x267
- RenderBlock {html} at (0,0) size 800x267
- RenderBody {body} at (8,16) size 784x235
- RenderBlock {p} at (0,0) size 784x28
- RenderText {#text} at (0,8) size 36x18
- text run at (0,8) width 36: "over: "
- RenderBlock {math} at (36,0) size 10x28
- RenderBlock {mover} at (0,0) size 10x28
+layer at (0,0) size 800x285
+ RenderBlock {html} at (0,0) size 800x285
+ RenderBody {body} at (8,16) size 784x253
+ RenderBlock {p} at (0,0) size 784x29
+ RenderText {#text} at (0,9) size 36x18
+ text run at (0,9) width 36: "over: "
+ RenderBlock {math} at (36,0) size 10x29
+ RenderBlock {mover} at (0,0) size 10x29
RenderBlock {mover} at (0,0) size 10x16
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (2,3) size 5x12
text run at (2,3) width 5: "x"
- RenderBlock {mover} at (0,11) size 10x17
+ RenderBlock {mover} at (0,12) size 10x17
RenderInline {mi} at (0,0) size 10x16
RenderText {#text} at (0,1) size 10x16
text run at (0,1) width 10: "B"
RenderText {#text} at (0,0) size 0x0
- RenderBlock {p} at (0,44) size 784x28
- RenderText {#text} at (0,8) size 36x18
- text run at (0,8) width 36: "over: "
- RenderBlock {math} at (36,0) size 10x28
- RenderBlock {mover} at (0,0) size 10x28
+ RenderBlock {p} at (0,45) size 784x29
+ RenderText {#text} at (0,9) size 36x18
+ text run at (0,9) width 36: "over: "
+ RenderBlock {math} at (36,0) size 10x29
+ RenderBlock {mover} at (0,0) size 10x29
RenderBlock {mover} at (0,0) size 10x16
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (2,3) size 5x12
text run at (2,3) width 5: "y"
- RenderBlock {mover} at (0,11) size 10x17
+ RenderBlock {mover} at (0,12) size 10x17
RenderInline {mi} at (0,0) size 10x16
RenderText {#text} at (0,1) size 10x16
text run at (0,1) width 10: "B"
RenderText {#text} at (0,0) size 0x0
- RenderBlock {p} at (0,88) size 784x35
- RenderText {#text} at (0,14) size 36x18
- text run at (0,14) width 36: "over: "
- RenderBlock {math} at (36,0) size 15x35
- RenderBlock {mover} at (0,0) size 15x35
+ RenderBlock {p} at (0,90) size 784x36
+ RenderText {#text} at (0,15) size 36x18
+ text run at (0,15) width 36: "over: "
+ RenderBlock {math} at (36,0) size 15x36
+ RenderBlock {mover} at (0,0) size 15x36
RenderBlock {mover} at (0,0) size 15x16
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (5,3) size 5x12
text run at (5,3) width 5: "y"
- RenderBlock {mover} at (0,11) size 15x24
+ RenderBlock {mover} at (0,12) size 15x24
RenderInline {mi} at (0,0) size 15x24
RenderText {#text} at (0,0) size 15x24
text run at (0,0) width 15: "B"
RenderText {#text} at (0,0) size 0x0
- RenderBlock {p} at (0,139) size 784x35
- RenderText {#text} at (0,14) size 36x18
- text run at (0,14) width 36: "over: "
- RenderBlock {math} at (36,0) size 19x35
- RenderBlock {mover} at (0,0) size 19x35
+ RenderBlock {p} at (0,142) size 784x36
+ RenderText {#text} at (0,15) size 36x18
+ text run at (0,15) width 36: "over: "
+ RenderBlock {math} at (36,0) size 19x36
+ RenderBlock {mover} at (0,0) size 19x36
RenderBlock {mover} at (0,0) size 19x16
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (7,3) size 5x12
text run at (7,3) width 5: "y"
- RenderBlock {mover} at (0,11) size 19x24
+ RenderBlock {mover} at (0,12) size 19x24
RenderBlock {mo} at (0,0) size 19x24
- RenderText {#text} at (1,0) size 17x24
- text run at (1,0) width 17: "\x{2211}"
+ RenderBlock {mo} at (1,0) size 17x24
+ RenderText {mo} at (0,0) size 17x24
+ text run at (0,0) width 17: "\x{2211}"
RenderText {#text} at (0,0) size 0x0
- RenderBlock {p} at (0,190) size 784x45
- RenderText {#text} at (0,26) size 36x18
- text run at (0,26) width 36: "over: "
- RenderBlock {math} at (36,0) size 45x45
- RenderBlock {mover} at (0,18) size 5x27
- RenderBlock {mover} at (0,0) size 5x16
+ RenderBlock {p} at (0,194) size 784x59
+ RenderText {#text} at (0,40) size 36x18
+ text run at (0,40) width 36: "over: "
+ RenderBlock {math} at (36,0) size 50x59
+ RenderBlock {mover} at (0,0) size 10x59
+ RenderBlock {mover} at (0,0) size 10x16
RenderInline {mi} at (0,0) size 5x12
- RenderText {#text} at (0,3) size 5x12
- text run at (0,3) width 5: "y"
- RenderBlock {mover} at (0,11) size 5x16
- RenderBlock {mo} at (0,0) size 4x16
- RenderText {#text} at (0,0) size 4x16
- text run at (0,0) width 4: "\x{222B}"
- RenderBlock {div} at (5,0) size 40x40
+ RenderText {#text} at (2,3) size 5x12
+ text run at (2,3) width 5: "y"
+ RenderBlock {mover} at (0,12) size 10x47
+ RenderBlock {mo} at (0,0) size 10x42
+ RenderBlock {div} at (10,14) size 40x40
RenderText {#text} at (0,0) size 0x0
+layer at (44,222) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{2320}"
+layer at (44,232) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (44,242) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (44,252) size 10x12 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 10x12
+layer at (44,248) size 10x15 backgroundClip at (44,252) size 10x12 clip at (44,252) size 10x12 outlineClip at (44,252) size 10x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 10x12
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{2321}"
diff --git a/LayoutTests/platform/mac/mathml/presentation/row-expected.checksum b/LayoutTests/platform/mac/mathml/presentation/row-expected.checksum
new file mode 100644
index 0000000..553bd41
--- /dev/null
+++ b/LayoutTests/platform/mac/mathml/presentation/row-expected.checksum
@@ -0,0 +1 @@
+03e1ecdfec8432ca84eae7854d08ff24
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/mathml/presentation/row-expected.png b/LayoutTests/platform/mac/mathml/presentation/row-expected.png
new file mode 100644
index 0000000..e15de58
Binary files /dev/null and b/LayoutTests/platform/mac/mathml/presentation/row-expected.png differ
diff --git a/LayoutTests/platform/mac/mathml/presentation/row-expected.txt b/LayoutTests/platform/mac/mathml/presentation/row-expected.txt
new file mode 100644
index 0000000..b92b7d4
--- /dev/null
+++ b/LayoutTests/platform/mac/mathml/presentation/row-expected.txt
@@ -0,0 +1,1143 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x429
+ RenderBlock {html} at (0,0) size 800x429
+ RenderBody {body} at (8,16) size 784x397
+ RenderBlock {p} at (0,0) size 784x18
+ RenderBlock {math} at (0,2) size 24x16
+ RenderInline {mi} at (0,0) size 7x16
+ RenderText {#text} at (0,1) size 7x16
+ text run at (0,1) width 7: "x"
+ RenderBlock {mo} at (7,1) size 9x16 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 9x16
+ RenderText {mo} at (0,0) size 9x16
+ text run at (0,0) width 9: "+"
+ RenderInline {mn} at (0,0) size 8x16
+ RenderText {#text} at (16,1) size 8x16
+ text run at (16,1) width 8: "1"
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {p} at (0,34) size 784x19
+ RenderText {#text} at (0,0) size 40x18
+ text run at (0,0) width 40: "16px: "
+ RenderBlock {math} at (40,3) size 32x16
+ RenderBlock {mrow} at (0,0) size 32x16
+ RenderBlock {mo} at (0,0) size 8x16 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 8x16
+ RenderText {mo} at (0,0) size 8x16
+ text run at (0,0) width 8: "{"
+ RenderBlock {div} at (8,0) size 16x16 [bgcolor=#00FF00]
+ RenderBlock {mo} at (24,0) size 8x16 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 8x16
+ RenderText {mo} at (0,0) size 8x16
+ text run at (0,0) width 8: "}"
+ RenderText {#text} at (72,0) size 4x18
+ text run at (72,0) width 4: " "
+ RenderBlock {math} at (76,3) size 26x16
+ RenderBlock {mrow} at (0,0) size 26x16
+ RenderBlock {mo} at (0,0) size 5x16 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 5x16
+ RenderText {mo} at (0,0) size 5x16
+ text run at (0,0) width 5: "["
+ RenderBlock {div} at (5,0) size 16x16 [bgcolor=#00FF00]
+ RenderBlock {mo} at (21,0) size 5x16 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 5x16
+ RenderText {mo} at (0,0) size 5x16
+ text run at (0,0) width 5: "]"
+ RenderText {#text} at (102,0) size 4x18
+ text run at (102,0) width 4: " "
+ RenderBlock {math} at (106,3) size 26x16
+ RenderBlock {mrow} at (0,0) size 26x16
+ RenderBlock {mo} at (0,0) size 5x16 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 5x16
+ RenderText {mo} at (0,0) size 5x16
+ text run at (0,0) width 5: "("
+ RenderBlock {div} at (5,0) size 16x16 [bgcolor=#00FF00]
+ RenderBlock {mo} at (21,0) size 5x16 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 5x16
+ RenderText {mo} at (0,0) size 5x16
+ text run at (0,0) width 5: ")"
+ RenderText {#text} at (132,0) size 4x18
+ text run at (132,0) width 4: " "
+ RenderBlock {math} at (136,3) size 22x16
+ RenderBlock {mrow} at (0,0) size 22x16
+ RenderBlock {mo} at (0,0) size 3x16 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 3x16
+ RenderText {mo} at (0,0) size 3x16
+ text run at (0,0) width 3: "|"
+ RenderBlock {div} at (3,0) size 16x16 [bgcolor=#00FF00]
+ RenderBlock {mo} at (19,0) size 3x16 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 3x16
+ RenderText {mo} at (0,0) size 3x16
+ text run at (0,0) width 3: "|"
+ RenderText {#text} at (158,0) size 4x18
+ text run at (158,0) width 4: " "
+ RenderBlock {math} at (162,3) size 20x16
+ RenderBlock {mrow} at (0,0) size 20x16
+ RenderBlock {mo} at (0,0) size 4x16 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 4x16
+ RenderText {mo} at (0,0) size 4x16
+ text run at (0,0) width 4: "\x{222B}"
+ RenderBlock {div} at (4,0) size 16x16 [bgcolor=#00FF00]
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {p} at (0,69) size 784x24
+ RenderText {#text} at (0,1) size 40x18
+ text run at (0,1) width 40: "24px: "
+ RenderBlock {math} at (40,0) size 48x24
+ RenderBlock {mrow} at (0,0) size 48x24
+ RenderBlock {mo} at (0,0) size 12x24 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 12x24
+ RenderText {mo} at (0,-2) size 12x28
+ text run at (0,-2) width 12: "{"
+ RenderBlock {div} at (12,0) size 24x24 [bgcolor=#00FF00]
+ RenderBlock {mo} at (36,0) size 12x24 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 12x24
+ RenderText {mo} at (0,-2) size 12x28
+ text run at (0,-2) width 12: "}"
+ RenderText {#text} at (88,1) size 4x18
+ text run at (88,1) width 4: " "
+ RenderBlock {math} at (92,0) size 40x24
+ RenderBlock {mrow} at (0,0) size 40x24
+ RenderBlock {mo} at (0,0) size 8x24 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 8x24
+ RenderText {mo} at (0,-2) size 8x28
+ text run at (0,-2) width 8: "["
+ RenderBlock {div} at (8,0) size 24x24 [bgcolor=#00FF00]
+ RenderBlock {mo} at (32,0) size 8x24 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 8x24
+ RenderText {mo} at (0,-2) size 8x28
+ text run at (0,-2) width 8: "]"
+ RenderText {#text} at (132,1) size 4x18
+ text run at (132,1) width 4: " "
+ RenderBlock {math} at (136,0) size 40x24
+ RenderBlock {mrow} at (0,0) size 40x24
+ RenderBlock {mo} at (0,0) size 8x24 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 8x24
+ RenderText {mo} at (0,-2) size 8x28
+ text run at (0,-2) width 8: "("
+ RenderBlock {div} at (8,0) size 24x24 [bgcolor=#00FF00]
+ RenderBlock {mo} at (32,0) size 8x24 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 8x24
+ RenderText {mo} at (0,-2) size 8x28
+ text run at (0,-2) width 8: ")"
+ RenderText {#text} at (176,1) size 4x18
+ text run at (176,1) width 4: " "
+ RenderBlock {math} at (180,0) size 34x24
+ RenderBlock {mrow} at (0,0) size 34x24
+ RenderBlock {mo} at (0,0) size 5x24 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 5x24
+ RenderText {mo} at (0,-2) size 5x28
+ text run at (0,-2) width 5: "|"
+ RenderBlock {div} at (5,0) size 24x24 [bgcolor=#00FF00]
+ RenderBlock {mo} at (29,0) size 5x24 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 5x24
+ RenderText {mo} at (0,-2) size 5x28
+ text run at (0,-2) width 5: "|"
+ RenderText {#text} at (214,1) size 4x18
+ text run at (214,1) width 4: " "
+ RenderBlock {math} at (218,0) size 31x24
+ RenderBlock {mrow} at (0,0) size 31x24
+ RenderBlock {mo} at (0,0) size 7x24 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 7x24
+ RenderText {mo} at (0,-2) size 7x28
+ text run at (0,-2) width 7: "\x{222B}"
+ RenderBlock {div} at (7,0) size 24x24 [bgcolor=#00FF00]
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {p} at (0,109) size 784x32
+ RenderText {#text} at (0,5) size 40x18
+ text run at (0,5) width 40: "32px: "
+ RenderBlock {math} at (40,0) size 46x32
+ RenderBlock {mrow} at (0,0) size 46x32
+ RenderBlock {mo} at (0,0) size 7x34 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (7,1) size 32x32 [bgcolor=#00FF00]
+ RenderBlock {mo} at (39,0) size 7x34 [bgcolor=#C8C8C8]
+ RenderText {#text} at (86,5) size 4x18
+ text run at (86,5) width 4: " "
+ RenderBlock {math} at (90,0) size 42x32
+ RenderBlock {mrow} at (0,0) size 42x32
+ RenderBlock {mo} at (0,0) size 5x34 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (5,1) size 32x32 [bgcolor=#00FF00]
+ RenderBlock {mo} at (37,0) size 5x34 [bgcolor=#C8C8C8]
+ RenderText {#text} at (132,5) size 4x18
+ text run at (132,5) width 4: " "
+ RenderBlock {math} at (136,0) size 42x32
+ RenderBlock {mrow} at (0,0) size 42x32
+ RenderBlock {mo} at (0,0) size 5x34 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (5,1) size 32x32 [bgcolor=#00FF00]
+ RenderBlock {mo} at (37,0) size 5x34 [bgcolor=#C8C8C8]
+ RenderText {#text} at (178,5) size 4x18
+ text run at (178,5) width 4: " "
+ RenderBlock {math} at (182,0) size 48x32
+ RenderBlock {mrow} at (0,0) size 48x32
+ RenderBlock {mo} at (0,0) size 8x34 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (8,1) size 32x32 [bgcolor=#00FF00]
+ RenderBlock {mo} at (40,0) size 8x34 [bgcolor=#C8C8C8]
+ RenderText {#text} at (230,5) size 4x18
+ text run at (230,5) width 4: " "
+ RenderBlock {math} at (234,0) size 42x32
+ RenderBlock {mrow} at (0,0) size 42x32
+ RenderBlock {mo} at (0,0) size 10x34 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (10,1) size 32x32 [bgcolor=#00FF00]
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {p} at (0,157) size 784x48
+ RenderText {#text} at (0,13) size 40x18
+ text run at (0,13) width 40: "48px: "
+ RenderBlock {math} at (40,0) size 62x48
+ RenderBlock {mrow} at (0,0) size 62x48
+ RenderBlock {mo} at (0,0) size 7x50 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (7,1) size 48x48 [bgcolor=#00FF00]
+ RenderBlock {mo} at (55,0) size 7x50 [bgcolor=#C8C8C8]
+ RenderText {#text} at (102,13) size 4x18
+ text run at (102,13) width 4: " "
+ RenderBlock {math} at (106,0) size 58x48
+ RenderBlock {mrow} at (0,0) size 58x48
+ RenderBlock {mo} at (0,0) size 5x50 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (5,1) size 48x48 [bgcolor=#00FF00]
+ RenderBlock {mo} at (53,0) size 5x50 [bgcolor=#C8C8C8]
+ RenderText {#text} at (164,13) size 4x18
+ text run at (164,13) width 4: " "
+ RenderBlock {math} at (168,0) size 58x48
+ RenderBlock {mrow} at (0,0) size 58x48
+ RenderBlock {mo} at (0,0) size 5x50 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (5,1) size 48x48 [bgcolor=#00FF00]
+ RenderBlock {mo} at (53,0) size 5x50 [bgcolor=#C8C8C8]
+ RenderText {#text} at (226,13) size 4x18
+ text run at (226,13) width 4: " "
+ RenderBlock {math} at (230,0) size 64x48
+ RenderBlock {mrow} at (0,0) size 64x48
+ RenderBlock {mo} at (0,0) size 8x50 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (8,1) size 48x48 [bgcolor=#00FF00]
+ RenderBlock {mo} at (56,0) size 8x50 [bgcolor=#C8C8C8]
+ RenderText {#text} at (294,13) size 4x18
+ text run at (294,13) width 4: " "
+ RenderBlock {math} at (298,0) size 58x48
+ RenderBlock {mrow} at (0,0) size 58x48
+ RenderBlock {mo} at (0,0) size 10x50 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (10,1) size 48x48 [bgcolor=#00FF00]
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {p} at (0,221) size 784x120
+ RenderText {#text} at (0,49) size 48x18
+ text run at (0,49) width 48: "120px: "
+ RenderBlock {math} at (48,0) size 134x120
+ RenderBlock {mrow} at (0,0) size 134x120
+ RenderBlock {mo} at (0,0) size 7x122 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (7,1) size 120x120 [bgcolor=#00FF00]
+ RenderBlock {mo} at (127,0) size 7x122 [bgcolor=#C8C8C8]
+ RenderText {#text} at (182,49) size 4x18
+ text run at (182,49) width 4: " "
+ RenderBlock {math} at (186,0) size 130x120
+ RenderBlock {mrow} at (0,0) size 130x120
+ RenderBlock {mo} at (0,0) size 5x122 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (5,1) size 120x120 [bgcolor=#00FF00]
+ RenderBlock {mo} at (125,0) size 5x122 [bgcolor=#C8C8C8]
+ RenderText {#text} at (316,49) size 4x18
+ text run at (316,49) width 4: " "
+ RenderBlock {math} at (320,0) size 130x120
+ RenderBlock {mrow} at (0,0) size 130x120
+ RenderBlock {mo} at (0,0) size 5x122 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (5,1) size 120x120 [bgcolor=#00FF00]
+ RenderBlock {mo} at (125,0) size 5x122 [bgcolor=#C8C8C8]
+ RenderText {#text} at (450,49) size 4x18
+ text run at (450,49) width 4: " "
+ RenderBlock {math} at (454,0) size 136x120
+ RenderBlock {mrow} at (0,0) size 136x120
+ RenderBlock {mo} at (0,0) size 8x122 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (8,1) size 120x120 [bgcolor=#00FF00]
+ RenderBlock {mo} at (128,0) size 8x122 [bgcolor=#C8C8C8]
+ RenderText {#text} at (590,49) size 4x18
+ text run at (590,49) width 4: " "
+ RenderBlock {math} at (594,0) size 130x120
+ RenderBlock {mrow} at (0,0) size 130x120
+ RenderBlock {mo} at (0,0) size 10x122 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (10,1) size 120x120 [bgcolor=#00FF00]
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {p} at (0,357) size 784x40
+ RenderBlock {math} at (0,0) size 138x40
+ RenderBlock {mrow} at (0,0) size 138x40
+ RenderBlock {mo} at (0,0) size 5x42 [bgcolor=#C8C8C8]
+ RenderBlock {div} at (5,1) size 40x40 [bgcolor=#00FF00]
+ RenderBlock {mo} at (45,13) size 4x16 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 4x16
+ RenderText {mo} at (0,0) size 4x16
+ text run at (0,0) width 4: ","
+ RenderBlock {div} at (49,1) size 40x40 [bgcolor=#00FF00]
+ RenderBlock {mo} at (89,13) size 4x16 [bgcolor=#C8C8C8]
+ RenderBlock {mo} at (0,0) size 4x16
+ RenderText {mo} at (0,0) size 4x16
+ text run at (0,0) width 4: ","
+ RenderBlock {div} at (93,1) size 40x40 [bgcolor=#00FF00]
+ RenderBlock {mo} at (133,0) size 5x42 [bgcolor=#C8C8C8]
+ RenderText {#text} at (0,0) size 0x0
+layer at (48,125) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23A7}"
+layer at (48,135) size 7x1 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 7x1
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (48,136) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,11) size 7x10
+layer at (48,146) size 7x1 scrollHeight 15
+ RenderBlock {mo} at (0,21) size 7x1
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (48,147) size 7x12 scrollHeight 15
+ RenderBlock {mo} at (0,22) size 7x12
+layer at (87,125) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AB}"
+layer at (87,135) size 7x1 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 7x1
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (87,136) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,11) size 7x10
+layer at (87,146) size 7x1 scrollHeight 15
+ RenderBlock {mo} at (0,21) size 7x1
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (87,147) size 7x12 scrollHeight 15
+ RenderBlock {mo} at (0,22) size 7x12
+layer at (98,125) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A1}"
+layer at (98,135) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (98,145) size 5x2 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x2
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (98,147) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,22) size 5x12
+layer at (135,125) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A4}"
+layer at (135,135) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (135,145) size 5x2 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x2
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (135,147) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,22) size 5x12
+layer at (144,125) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239B}"
+layer at (144,135) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (144,145) size 5x2 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x2
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (144,147) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,22) size 5x12
+layer at (181,125) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239E}"
+layer at (181,135) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (181,145) size 5x2 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x2
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (181,147) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,22) size 5x12
+layer at (190,125) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (190,135) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (190,145) size 8x2 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 8x2
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (190,147) size 8x12 scrollHeight 15
+ RenderBlock {mo} at (0,22) size 8x12
+layer at (230,125) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (230,135) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (230,145) size 8x2 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 8x2
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (230,147) size 8x12 scrollHeight 15
+ RenderBlock {mo} at (0,22) size 8x12
+layer at (242,125) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{2320}"
+layer at (242,135) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (242,145) size 10x2 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 10x2
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (242,147) size 10x12 scrollHeight 15
+ RenderBlock {mo} at (0,22) size 10x12
+layer at (48,173) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23A7}"
+layer at (48,183) size 7x9 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 7x9
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (48,192) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,19) size 7x10
+layer at (48,202) size 7x9 scrollHeight 15
+ RenderBlock {mo} at (0,29) size 7x9
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (48,211) size 7x12 scrollHeight 15
+ RenderBlock {mo} at (0,38) size 7x12
+layer at (103,173) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AB}"
+layer at (103,183) size 7x9 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 7x9
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (103,192) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,19) size 7x10
+layer at (103,202) size 7x9 scrollHeight 15
+ RenderBlock {mo} at (0,29) size 7x9
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (103,211) size 7x12 scrollHeight 15
+ RenderBlock {mo} at (0,38) size 7x12
+layer at (114,173) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A1}"
+layer at (114,183) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (114,193) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (114,203) size 5x8 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 5x8
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (114,211) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,38) size 5x12
+layer at (167,173) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A4}"
+layer at (167,183) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (167,193) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (167,203) size 5x8 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 5x8
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (167,211) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,38) size 5x12
+layer at (176,173) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239B}"
+layer at (176,183) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (176,193) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (176,203) size 5x8 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 5x8
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (176,211) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,38) size 5x12
+layer at (229,173) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239E}"
+layer at (229,183) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (229,193) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (229,203) size 5x8 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 5x8
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (229,211) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,38) size 5x12
+layer at (238,173) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (238,183) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (238,193) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (238,203) size 8x8 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 8x8
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (238,211) size 8x12 scrollHeight 15
+ RenderBlock {mo} at (0,38) size 8x12
+layer at (294,173) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (294,183) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (294,193) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (294,203) size 8x8 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 8x8
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (294,211) size 8x12 scrollHeight 15
+ RenderBlock {mo} at (0,38) size 8x12
+layer at (306,173) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{2320}"
+layer at (306,183) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (306,193) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (306,203) size 10x8 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 10x8
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (306,211) size 10x12 scrollHeight 15
+ RenderBlock {mo} at (0,38) size 10x12
+layer at (56,237) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23A7}"
+layer at (56,247) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (56,257) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (56,267) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (56,277) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,40) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (56,287) size 7x5 scrollHeight 15
+ RenderBlock {mo} at (0,50) size 7x5
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (56,292) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,55) size 7x10
+layer at (56,302) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,65) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (56,312) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,75) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (56,322) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,85) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (56,332) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,95) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (56,342) size 7x5 scrollHeight 15
+ RenderBlock {mo} at (0,105) size 7x5
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (56,347) size 7x12 scrollHeight 15
+ RenderBlock {mo} at (0,110) size 7x12
+layer at (183,237) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AB}"
+layer at (183,247) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (183,257) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (183,267) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (183,277) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,40) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (183,287) size 7x5 scrollHeight 15
+ RenderBlock {mo} at (0,50) size 7x5
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (183,292) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,55) size 7x10
+layer at (183,302) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,65) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (183,312) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,75) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (183,322) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,85) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (183,332) size 7x10 scrollHeight 15
+ RenderBlock {mo} at (0,95) size 7x10
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (183,342) size 7x5 scrollHeight 15
+ RenderBlock {mo} at (0,105) size 7x5
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AA}"
+layer at (183,347) size 7x12 scrollHeight 15
+ RenderBlock {mo} at (0,110) size 7x12
+layer at (194,237) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A1}"
+layer at (194,247) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (194,257) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (194,267) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (194,277) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,40) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (194,287) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,50) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (194,297) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,60) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (194,307) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,70) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (194,317) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,80) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (194,327) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,90) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (194,337) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,100) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A2}"
+layer at (194,347) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,110) size 5x12
+layer at (319,237) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A4}"
+layer at (319,247) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (319,257) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (319,267) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (319,277) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,40) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (319,287) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,50) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (319,297) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,60) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (319,307) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,70) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (319,317) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,80) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (319,327) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,90) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (319,337) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,100) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A5}"
+layer at (319,347) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,110) size 5x12
+layer at (328,237) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239B}"
+layer at (328,247) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (328,257) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (328,267) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (328,277) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,40) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (328,287) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,50) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (328,297) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,60) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (328,307) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,70) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (328,317) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,80) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (328,327) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,90) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (328,337) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,100) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (328,347) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,110) size 5x12
+layer at (453,237) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239E}"
+layer at (453,247) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (453,257) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (453,267) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (453,277) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,40) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (453,287) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,50) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (453,297) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,60) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (453,307) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,70) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (453,317) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,80) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (453,327) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,90) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (453,337) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,100) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (453,347) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,110) size 5x12
+layer at (462,237) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (462,247) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (462,257) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (462,267) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (462,277) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,40) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (462,287) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,50) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (462,297) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,60) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (462,307) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,70) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (462,317) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,80) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (462,327) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,90) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (462,337) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,100) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (462,347) size 8x12 scrollHeight 15
+ RenderBlock {mo} at (0,110) size 8x12
+layer at (590,237) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (590,247) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (590,257) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (590,267) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (590,277) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,40) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (590,287) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,50) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (590,297) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,60) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (590,307) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,70) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (590,317) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,80) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (590,327) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,90) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (590,337) size 8x10 scrollHeight 15
+ RenderBlock {mo} at (0,100) size 8x10
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (590,347) size 8x12 scrollHeight 15
+ RenderBlock {mo} at (0,110) size 8x12
+layer at (602,237) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{2320}"
+layer at (602,247) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (602,257) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (602,267) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (602,277) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,40) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (602,287) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,50) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (602,297) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,60) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (602,307) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,70) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (602,317) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,80) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (602,327) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,90) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (602,337) size 10x10 scrollHeight 15
+ RenderBlock {mo} at (0,100) size 10x10
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{23AE}"
+layer at (602,347) size 10x12 scrollHeight 15
+ RenderBlock {mo} at (0,110) size 10x12
+layer at (8,373) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239B}"
+layer at (8,383) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (8,393) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239C}"
+layer at (8,403) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 5x12
+layer at (141,373) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,0) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239E}"
+layer at (141,383) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,10) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (141,393) size 5x10 scrollHeight 15
+ RenderBlock {mo} at (0,20) size 5x10
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239F}"
+layer at (141,403) size 5x12 scrollHeight 15
+ RenderBlock {mo} at (0,30) size 5x12
+layer at (48,134) size 7x15 backgroundClip at (48,136) size 7x10 clip at (48,136) size 7x10 outlineClip at (48,136) size 7x10
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23A8}"
+layer at (48,143) size 7x15 backgroundClip at (48,147) size 7x12 clip at (48,147) size 7x12 outlineClip at (48,147) size 7x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23A9}"
+layer at (87,134) size 7x15 backgroundClip at (87,136) size 7x10 clip at (87,136) size 7x10 outlineClip at (87,136) size 7x10
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AC}"
+layer at (87,143) size 7x15 backgroundClip at (87,147) size 7x12 clip at (87,147) size 7x12 outlineClip at (87,147) size 7x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AD}"
+layer at (98,143) size 5x15 backgroundClip at (98,147) size 5x12 clip at (98,147) size 5x12 outlineClip at (98,147) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A3}"
+layer at (135,143) size 5x15 backgroundClip at (135,147) size 5x12 clip at (135,147) size 5x12 outlineClip at (135,147) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A6}"
+layer at (144,143) size 5x15 backgroundClip at (144,147) size 5x12 clip at (144,147) size 5x12 outlineClip at (144,147) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239D}"
+layer at (181,143) size 5x15 backgroundClip at (181,147) size 5x12 clip at (181,147) size 5x12 outlineClip at (181,147) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A0}"
+layer at (190,143) size 8x15 backgroundClip at (190,147) size 8x12 clip at (190,147) size 8x12 outlineClip at (190,147) size 8x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 8x12
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (230,143) size 8x15 backgroundClip at (230,147) size 8x12 clip at (230,147) size 8x12 outlineClip at (230,147) size 8x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 8x12
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (242,143) size 10x15 backgroundClip at (242,147) size 10x12 clip at (242,147) size 10x12 outlineClip at (242,147) size 10x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 10x12
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{2321}"
+layer at (48,190) size 7x15 backgroundClip at (48,192) size 7x10 clip at (48,192) size 7x10 outlineClip at (48,192) size 7x10
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23A8}"
+layer at (48,207) size 7x15 backgroundClip at (48,211) size 7x12 clip at (48,211) size 7x12 outlineClip at (48,211) size 7x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23A9}"
+layer at (103,190) size 7x15 backgroundClip at (103,192) size 7x10 clip at (103,192) size 7x10 outlineClip at (103,192) size 7x10
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AC}"
+layer at (103,207) size 7x15 backgroundClip at (103,211) size 7x12 clip at (103,211) size 7x12 outlineClip at (103,211) size 7x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AD}"
+layer at (114,207) size 5x15 backgroundClip at (114,211) size 5x12 clip at (114,211) size 5x12 outlineClip at (114,211) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A3}"
+layer at (167,207) size 5x15 backgroundClip at (167,211) size 5x12 clip at (167,211) size 5x12 outlineClip at (167,211) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A6}"
+layer at (176,207) size 5x15 backgroundClip at (176,211) size 5x12 clip at (176,211) size 5x12 outlineClip at (176,211) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239D}"
+layer at (229,207) size 5x15 backgroundClip at (229,211) size 5x12 clip at (229,211) size 5x12 outlineClip at (229,211) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A0}"
+layer at (238,207) size 8x15 backgroundClip at (238,211) size 8x12 clip at (238,211) size 8x12 outlineClip at (238,211) size 8x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 8x12
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (294,207) size 8x15 backgroundClip at (294,211) size 8x12 clip at (294,211) size 8x12 outlineClip at (294,211) size 8x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 8x12
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (306,207) size 10x15 backgroundClip at (306,211) size 10x12 clip at (306,211) size 10x12 outlineClip at (306,211) size 10x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 10x12
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{2321}"
+layer at (56,290) size 7x15 backgroundClip at (56,292) size 7x10 clip at (56,292) size 7x10 outlineClip at (56,292) size 7x10
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23A8}"
+layer at (56,343) size 7x15 backgroundClip at (56,347) size 7x12 clip at (56,347) size 7x12 outlineClip at (56,347) size 7x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23A9}"
+layer at (183,290) size 7x15 backgroundClip at (183,292) size 7x10 clip at (183,292) size 7x10 outlineClip at (183,292) size 7x10
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AC}"
+layer at (183,343) size 7x15 backgroundClip at (183,347) size 7x12 clip at (183,347) size 7x12 outlineClip at (183,347) size 7x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,-2) size 7x17
+ text run at (0,-2) width 7: "\x{23AD}"
+layer at (194,343) size 5x15 backgroundClip at (194,347) size 5x12 clip at (194,347) size 5x12 outlineClip at (194,347) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A3}"
+layer at (319,343) size 5x15 backgroundClip at (319,347) size 5x12 clip at (319,347) size 5x12 outlineClip at (319,347) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A6}"
+layer at (328,343) size 5x15 backgroundClip at (328,347) size 5x12 clip at (328,347) size 5x12 outlineClip at (328,347) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239D}"
+layer at (453,343) size 5x15 backgroundClip at (453,347) size 5x12 clip at (453,347) size 5x12 outlineClip at (453,347) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A0}"
+layer at (462,343) size 8x15 backgroundClip at (462,347) size 8x12 clip at (462,347) size 8x12 outlineClip at (462,347) size 8x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 8x12
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (590,343) size 8x15 backgroundClip at (590,347) size 8x12 clip at (590,347) size 8x12 outlineClip at (590,347) size 8x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 8x12
+ RenderText {mo} at (0,-2) size 8x17
+ text run at (0,-2) width 8: "\x{23D0}"
+layer at (602,343) size 10x15 backgroundClip at (602,347) size 10x12 clip at (602,347) size 10x12 outlineClip at (602,347) size 10x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 10x12
+ RenderText {mo} at (0,-2) size 10x17
+ text run at (0,-2) width 10: "\x{2321}"
+layer at (8,399) size 5x15 backgroundClip at (8,403) size 5x12 clip at (8,403) size 5x12 outlineClip at (8,403) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{239D}"
+layer at (141,399) size 5x15 backgroundClip at (141,403) size 5x12 clip at (141,403) size 5x12 outlineClip at (141,403) size 5x12
+ RenderBlock (relative positioned) {mo} at (0,0) size 5x12
+ RenderText {mo} at (0,-2) size 5x17
+ text run at (0,-2) width 5: "\x{23A0}"
diff --git a/LayoutTests/platform/mac/mathml/presentation/subsup-expected.txt b/LayoutTests/platform/mac/mathml/presentation/subsup-expected.txt
index eb32e81..c446d52 100644
--- a/LayoutTests/platform/mac/mathml/presentation/subsup-expected.txt
+++ b/LayoutTests/platform/mac/mathml/presentation/subsup-expected.txt
@@ -32,24 +32,26 @@ layer at (0,0) size 800x224
RenderText {#text} at (0,1) size 9x16
text run at (0,1) width 9: "Z"
RenderBlock {msubsup} at (10,4) size 30x32
- RenderBlock {msubsup} at (0,0) size 30x16
+ RenderBlock {msubsup} at (0,0) size 16x16
RenderInline {mi} at (0,0) size 3x12
RenderText {#text} at (0,3) size 3x12
text run at (0,3) width 3: "j"
- RenderBlock {msubsup} at (0,16) size 30x16
- RenderBlock {mrow} at (1,2) size 29x13
+ RenderBlock {msubsup} at (0,16) size 16x16
+ RenderBlock {mrow} at (1,2) size 29x12
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (0,1) size 5x12
text run at (0,1) width 5: "x"
RenderBlock {mo} at (5,1) size 7x12
- RenderText {#text} at (0,0) size 7x12
- text run at (0,0) width 7: "+"
+ RenderBlock {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,0) size 7x12
+ text run at (0,0) width 7: "+"
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (12,1) size 5x12
text run at (12,1) width 5: "y"
RenderBlock {mo} at (17,1) size 7x12
- RenderText {#text} at (0,0) size 7x12
- text run at (0,0) width 7: "+"
+ RenderBlock {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,0) size 7x12
+ text run at (0,0) width 7: "+"
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (24,1) size 5x12
text run at (24,1) width 5: "z"
@@ -64,18 +66,19 @@ layer at (0,0) size 800x224
RenderText {#text} at (0,1) size 9x16
text run at (0,1) width 9: "Z"
RenderBlock {msubsup} at (10,4) size 16x32
- RenderBlock {msubsup} at (0,0) size 16x16
- RenderBlock {mrow} at (1,2) size 15x13
+ RenderBlock {msubsup} at (0,0) size 9x16
+ RenderBlock {mrow} at (1,2) size 15x12
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (0,1) size 5x12
text run at (0,1) width 5: "k"
RenderBlock {mo} at (5,1) size 7x12
- RenderText {#text} at (0,0) size 7x12
- text run at (0,0) width 7: "+"
+ RenderBlock {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,0) size 7x12
+ text run at (0,0) width 7: "+"
RenderInline {mi} at (0,0) size 3x12
RenderText {#text} at (12,1) size 3x12
text run at (12,1) width 3: "j"
- RenderBlock {msubsup} at (0,16) size 16x16
+ RenderBlock {msubsup} at (0,16) size 9x16
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (0,3) size 5x12
text run at (0,3) width 5: "x"
@@ -90,31 +93,34 @@ layer at (0,0) size 800x224
RenderText {#text} at (0,1) size 9x16
text run at (0,1) width 9: "Z"
RenderBlock {msubsup} at (10,4) size 30x32
- RenderBlock {msubsup} at (0,0) size 30x16
- RenderBlock {mrow} at (1,2) size 15x13
+ RenderBlock {msubsup} at (0,0) size 16x16
+ RenderBlock {mrow} at (1,2) size 15x12
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (0,1) size 5x12
text run at (0,1) width 5: "k"
RenderBlock {mo} at (5,1) size 7x12
- RenderText {#text} at (0,0) size 7x12
- text run at (0,0) width 7: "+"
+ RenderBlock {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,0) size 7x12
+ text run at (0,0) width 7: "+"
RenderInline {mi} at (0,0) size 3x12
RenderText {#text} at (12,1) size 3x12
text run at (12,1) width 3: "j"
- RenderBlock {msubsup} at (0,16) size 30x16
- RenderBlock {mrow} at (1,2) size 29x13
+ RenderBlock {msubsup} at (0,16) size 16x16
+ RenderBlock {mrow} at (1,2) size 29x12
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (0,1) size 5x12
text run at (0,1) width 5: "x"
RenderBlock {mo} at (5,1) size 7x12
- RenderText {#text} at (0,0) size 7x12
- text run at (0,0) width 7: "+"
+ RenderBlock {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,0) size 7x12
+ text run at (0,0) width 7: "+"
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (12,1) size 5x12
text run at (12,1) width 5: "y"
RenderBlock {mo} at (17,1) size 7x12
- RenderText {#text} at (0,0) size 7x12
- text run at (0,0) width 7: "+"
+ RenderBlock {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,0) size 7x12
+ text run at (0,0) width 7: "+"
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (24,1) size 5x12
text run at (24,1) width 5: "z"
diff --git a/LayoutTests/platform/mac/mathml/presentation/underover-expected.checksum b/LayoutTests/platform/mac/mathml/presentation/underover-expected.checksum
index 2c64ae9..a332e4f 100644
--- a/LayoutTests/platform/mac/mathml/presentation/underover-expected.checksum
+++ b/LayoutTests/platform/mac/mathml/presentation/underover-expected.checksum
@@ -1 +1 @@
-de04f42cf0dc03f38330bd9b9c803660
\ No newline at end of file
+7d8d13ef4353afbb55e218bdb3fd2e97
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/mathml/presentation/underover-expected.png b/LayoutTests/platform/mac/mathml/presentation/underover-expected.png
index 501fd21..eb8977f 100644
Binary files a/LayoutTests/platform/mac/mathml/presentation/underover-expected.png and b/LayoutTests/platform/mac/mathml/presentation/underover-expected.png differ
diff --git a/LayoutTests/platform/mac/mathml/presentation/underover-expected.txt b/LayoutTests/platform/mac/mathml/presentation/underover-expected.txt
index ec9de08..645a9c3 100644
--- a/LayoutTests/platform/mac/mathml/presentation/underover-expected.txt
+++ b/LayoutTests/platform/mac/mathml/presentation/underover-expected.txt
@@ -1,104 +1,110 @@
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
-layer at (0,0) size 800x260
- RenderBlock {html} at (0,0) size 800x260
- RenderBody {body} at (8,16) size 784x228
- RenderBlock {p} at (0,0) size 784x38
- RenderText {#text} at (0,8) size 92x18
- text run at (0,8) width 92: "under & over: "
- RenderBlock {math} at (92,0) size 10x38
- RenderBlock {munderover} at (0,0) size 10x38
+layer at (0,0) size 800x264
+ RenderBlock {html} at (0,0) size 800x264
+ RenderBody {body} at (8,16) size 784x232
+ RenderBlock {p} at (0,0) size 784x39
+ RenderText {#text} at (0,9) size 92x18
+ text run at (0,9) width 92: "under & over: "
+ RenderBlock {math} at (92,0) size 10x39
+ RenderBlock {munderover} at (0,0) size 10x39
RenderBlock {munderover} at (0,0) size 10x16
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (2,3) size 5x12
text run at (2,3) width 5: "y"
- RenderBlock {munderover} at (0,11) size 10x17
+ RenderBlock {munderover} at (0,12) size 10x17
RenderInline {mi} at (0,0) size 10x16
RenderText {#text} at (0,1) size 10x16
text run at (0,1) width 10: "B"
- RenderBlock {munderover} at (0,22) size 10x16
+ RenderBlock {munderover} at (0,23) size 10x16
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (2,3) size 5x12
text run at (2,3) width 5: "x"
RenderText {#text} at (0,0) size 0x0
- RenderBlock {p} at (0,54) size 784x38
- RenderText {#text} at (0,8) size 92x18
- text run at (0,8) width 92: "under & over: "
- RenderBlock {math} at (92,0) size 10x38
- RenderBlock {munderover} at (0,0) size 10x38
+ RenderBlock {p} at (0,55) size 784x39
+ RenderText {#text} at (0,9) size 92x18
+ text run at (0,9) width 92: "under & over: "
+ RenderBlock {math} at (92,0) size 10x39
+ RenderBlock {munderover} at (0,0) size 10x39
RenderBlock {munderover} at (0,0) size 10x16
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (2,3) size 5x12
text run at (2,3) width 5: "y"
- RenderBlock {munderover} at (0,11) size 10x17
+ RenderBlock {munderover} at (0,12) size 10x17
RenderInline {mi} at (0,0) size 10x16
RenderText {#text} at (0,1) size 10x16
text run at (0,1) width 10: "B"
- RenderBlock {munderover} at (0,22) size 10x16
+ RenderBlock {munderover} at (0,23) size 10x16
RenderInline {mi} at (0,0) size 7x12
RenderText {#text} at (1,3) size 7x12
text run at (1,3) width 7: "X"
RenderText {#text} at (0,0) size 0x0
- RenderBlock {p} at (0,108) size 784x52
- RenderText {#text} at (0,15) size 92x18
- text run at (0,15) width 92: "under & over: "
- RenderBlock {math} at (92,0) size 19x52
- RenderBlock {munderover} at (0,0) size 19x52
+ RenderBlock {p} at (0,110) size 784x53
+ RenderText {#text} at (0,16) size 92x18
+ text run at (0,16) width 92: "under & over: "
+ RenderBlock {math} at (92,0) size 19x53
+ RenderBlock {munderover} at (0,0) size 19x53
RenderBlock {munderover} at (0,0) size 19x16
- RenderBlock {mrow} at (1,2) size 17x13
+ RenderBlock {mrow} at (1,2) size 17x12
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (0,1) size 5x12
text run at (0,1) width 5: "x"
RenderBlock {mo} at (5,1) size 7x12
- RenderText {#text} at (0,0) size 7x12
- text run at (0,0) width 7: "+"
+ RenderBlock {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,0) size 7x12
+ text run at (0,0) width 7: "+"
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (12,1) size 5x12
text run at (12,1) width 5: "y"
- RenderBlock {munderover} at (0,12) size 19x24
+ RenderBlock {munderover} at (0,13) size 19x24
RenderBlock {mo} at (0,0) size 19x24
- RenderText {#text} at (1,0) size 17x24
- text run at (1,0) width 17: "\x{2211}"
- RenderBlock {munderover} at (0,36) size 19x16
- RenderBlock {mrow} at (1,2) size 16x13
+ RenderBlock {mo} at (1,0) size 17x24
+ RenderText {mo} at (0,0) size 17x24
+ text run at (0,0) width 17: "\x{2211}"
+ RenderBlock {munderover} at (0,37) size 19x16
+ RenderBlock {mrow} at (1,2) size 16x12
RenderInline {mi} at (0,0) size 3x12
RenderText {#text} at (0,1) size 3x12
text run at (0,1) width 3: "i"
RenderBlock {mo} at (3,1) size 7x12
- RenderText {#text} at (0,0) size 7x12
- text run at (0,0) width 7: "="
+ RenderBlock {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,0) size 7x12
+ text run at (0,0) width 7: "="
RenderInline {mi} at (0,0) size 6x12
RenderText {#text} at (10,1) size 6x12
text run at (10,1) width 6: "0"
RenderText {#text} at (0,0) size 0x0
- RenderBlock {p} at (0,176) size 784x52
- RenderText {#text} at (0,15) size 92x18
- text run at (0,15) width 92: "under & over: "
- RenderBlock {math} at (92,0) size 19x52
- RenderBlock {munderover} at (0,0) size 19x52
+ RenderBlock {p} at (0,179) size 784x53
+ RenderText {#text} at (0,16) size 92x18
+ text run at (0,16) width 92: "under & over: "
+ RenderBlock {math} at (92,0) size 19x53
+ RenderBlock {munderover} at (0,0) size 19x53
RenderBlock {munderover} at (0,0) size 19x16
- RenderBlock {mrow} at (0,2) size 19x13
+ RenderBlock {mrow} at (0,2) size 19x12
RenderInline {mi} at (0,0) size 7x12
RenderText {#text} at (0,1) size 7x12
text run at (0,1) width 7: "X"
RenderBlock {mo} at (7,1) size 7x12
- RenderText {#text} at (0,0) size 7x12
- text run at (0,0) width 7: "+"
+ RenderBlock {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,0) size 7x12
+ text run at (0,0) width 7: "+"
RenderInline {mi} at (0,0) size 5x12
RenderText {#text} at (14,1) size 5x12
text run at (14,1) width 5: "y"
- RenderBlock {munderover} at (0,12) size 19x24
+ RenderBlock {munderover} at (0,13) size 19x24
RenderBlock {mo} at (0,0) size 19x24
- RenderText {#text} at (1,0) size 17x24
- text run at (1,0) width 17: "\x{2211}"
- RenderBlock {munderover} at (0,36) size 19x16
- RenderBlock {mrow} at (1,2) size 17x13
+ RenderBlock {mo} at (1,0) size 17x24
+ RenderText {mo} at (0,0) size 17x24
+ text run at (0,0) width 17: "\x{2211}"
+ RenderBlock {munderover} at (0,37) size 19x16
+ RenderBlock {mrow} at (1,2) size 17x12
RenderInline {mi} at (0,0) size 4x12
RenderText {#text} at (0,1) size 4x12
text run at (0,1) width 4: "I"
RenderBlock {mo} at (4,1) size 7x12
- RenderText {#text} at (0,0) size 7x12
- text run at (0,0) width 7: "="
+ RenderBlock {mo} at (0,0) size 7x12
+ RenderText {mo} at (0,0) size 7x12
+ text run at (0,0) width 7: "="
RenderInline {mi} at (0,0) size 6x12
RenderText {#text} at (11,1) size 6x12
text run at (11,1) width 6: "0"
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 35a9200..222fec4 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,25 @@
+2010-03-05 Alex Milowski <alex at milowski.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added support for row layout with stretchy operators and
+ adjusted the over spacing for over and underover accordingly.
+
+ Tests: mathml/presentation/mo.xhtml
+ mathml/presentation/row.xhtml
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * mathml/MathMLInlineContainerElement.cpp:
+ * mathml/MathMLTextElement.cpp:
+ * mathml/RenderMathMLMath.cpp: Added.
+ * mathml/RenderMathMLMath.h: Added.
+ * mathml/RenderMathMLOperator.cpp: Added.
+ * mathml/RenderMathMLOperator.h: Added.
+ * mathml/RenderMathMLRow.cpp: Added.
+ * mathml/RenderMathMLRow.h: Added.
+ * mathml/RenderMathMLUnderOver.cpp:
+ * mathml/mathtags.in:
+
2010-03-05 Dean Jackson <dino at apple.com>
Reviewed by Simon Fraser.
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index f47d580..c46545f 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -4861,6 +4861,12 @@
F916C48D0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F916C48B0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.cpp */; };
F916C48E0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = F916C48C0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.h */; };
F9F0ED7A0DB50CA200D16DB9 /* XMLHttpRequestProgressEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = F9F0ED770DB50CA200D16DB9 /* XMLHttpRequestProgressEvent.h */; };
+ FA0B1F8611125CEE007F9839 /* RenderMathMLMath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA0B1F8211125CEE007F9839 /* RenderMathMLMath.cpp */; };
+ FA0B1F8711125CEE007F9839 /* RenderMathMLMath.h in Headers */ = {isa = PBXBuildFile; fileRef = FA0B1F8311125CEE007F9839 /* RenderMathMLMath.h */; };
+ FA0B1F8811125CEE007F9839 /* RenderMathMLRow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA0B1F8411125CEE007F9839 /* RenderMathMLRow.cpp */; };
+ FA0B1F8911125CEE007F9839 /* RenderMathMLRow.h in Headers */ = {isa = PBXBuildFile; fileRef = FA0B1F8511125CEE007F9839 /* RenderMathMLRow.h */; };
+ FA5FAE4211126A5D00D3750F /* RenderMathMLOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA5FAE4011126A5D00D3750F /* RenderMathMLOperator.cpp */; };
+ FA5FAE4311126A5D00D3750F /* RenderMathMLOperator.h in Headers */ = {isa = PBXBuildFile; fileRef = FA5FAE4111126A5D00D3750F /* RenderMathMLOperator.h */; };
FA654A641108ABB7002615E0 /* mathml.css in Resources */ = {isa = PBXBuildFile; fileRef = FA654A631108ABB7002615E0 /* mathml.css */; };
FA654A681108ABE2002615E0 /* mathattrs.in in Resources */ = {isa = PBXBuildFile; fileRef = FA654A671108ABE2002615E0 /* mathattrs.in */; };
FA654A6B1108ABED002615E0 /* MathMLTextElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA654A691108ABED002615E0 /* MathMLTextElement.cpp */; };
@@ -10209,6 +10215,12 @@
F916C48C0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSXMLHttpRequestProgressEvent.h; sourceTree = "<group>"; };
F9F0ED770DB50CA200D16DB9 /* XMLHttpRequestProgressEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = XMLHttpRequestProgressEvent.h; sourceTree = "<group>"; };
F9F0ED780DB50CA200D16DB9 /* XMLHttpRequestProgressEvent.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = XMLHttpRequestProgressEvent.idl; sourceTree = "<group>"; };
+ FA0B1F8211125CEE007F9839 /* RenderMathMLMath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLMath.cpp; sourceTree = "<group>"; };
+ FA0B1F8311125CEE007F9839 /* RenderMathMLMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLMath.h; sourceTree = "<group>"; };
+ FA0B1F8411125CEE007F9839 /* RenderMathMLRow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLRow.cpp; sourceTree = "<group>"; };
+ FA0B1F8511125CEE007F9839 /* RenderMathMLRow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLRow.h; sourceTree = "<group>"; };
+ FA5FAE4011126A5D00D3750F /* RenderMathMLOperator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLOperator.cpp; sourceTree = "<group>"; };
+ FA5FAE4111126A5D00D3750F /* RenderMathMLOperator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLOperator.h; sourceTree = "<group>"; };
FA654A631108ABB7002615E0 /* mathml.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = mathml.css; sourceTree = "<group>"; };
FA654A671108ABE2002615E0 /* mathattrs.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = mathattrs.in; sourceTree = "<group>"; };
FA654A691108ABED002615E0 /* MathMLTextElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MathMLTextElement.cpp; sourceTree = "<group>"; };
@@ -16131,6 +16143,12 @@
FABE72F31059C1EB00D999DD /* mathtags.in */,
FA654A6D1108ABFF002615E0 /* RenderMathMLBlock.cpp */,
FA654A6E1108ABFF002615E0 /* RenderMathMLBlock.h */,
+ FA0B1F8211125CEE007F9839 /* RenderMathMLMath.cpp */,
+ FA0B1F8311125CEE007F9839 /* RenderMathMLMath.h */,
+ FA5FAE4011126A5D00D3750F /* RenderMathMLOperator.cpp */,
+ FA5FAE4111126A5D00D3750F /* RenderMathMLOperator.h */,
+ FA0B1F8411125CEE007F9839 /* RenderMathMLRow.cpp */,
+ FA0B1F8511125CEE007F9839 /* RenderMathMLRow.h */,
FAC12CC21120DA6900DACC36 /* RenderMathMLSubSup.cpp */,
FAC12CC31120DA6900DACC36 /* RenderMathMLSubSup.h */,
FA7EFB031120D25400CF79C7 /* RenderMathMLUnderOver.cpp */,
@@ -18605,6 +18623,9 @@
B71FE6DF11091CB300DAEF77 /* PrintContext.h in Headers */,
9F72304F11184B4100AD0126 /* ScriptProfile.h in Headers */,
9F72305111184B4100AD0126 /* ScriptProfiler.h in Headers */,
+ FA0B1F8711125CEE007F9839 /* RenderMathMLMath.h in Headers */,
+ FA0B1F8911125CEE007F9839 /* RenderMathMLRow.h in Headers */,
+ FA5FAE4311126A5D00D3750F /* RenderMathMLOperator.h in Headers */,
FAC12CC51120DA6900DACC36 /* RenderMathMLSubSup.h in Headers */,
FA7EFB061120D25400CF79C7 /* RenderMathMLUnderOver.h in Headers */,
BCE789161120D6080060ECE5 /* InlineIterator.h in Headers */,
@@ -20802,6 +20823,9 @@
84D0C4041115F1D40018AA34 /* AffineTransform.cpp in Sources */,
B776D43D1104527500BEB0EC /* PrintContext.cpp in Sources */,
9F72305011184B4100AD0126 /* ScriptProfiler.cpp in Sources */,
+ FA0B1F8611125CEE007F9839 /* RenderMathMLMath.cpp in Sources */,
+ FA0B1F8811125CEE007F9839 /* RenderMathMLRow.cpp in Sources */,
+ FA5FAE4211126A5D00D3750F /* RenderMathMLOperator.cpp in Sources */,
FAC12CC41120DA6900DACC36 /* RenderMathMLSubSup.cpp in Sources */,
FA7EFB051120D25400CF79C7 /* RenderMathMLUnderOver.cpp in Sources */,
BCE7898B1120E8020060ECE5 /* BidiRun.cpp in Sources */,
diff --git a/WebCore/mathml/MathMLInlineContainerElement.cpp b/WebCore/mathml/MathMLInlineContainerElement.cpp
index a1e384f..1cf89d5 100644
--- a/WebCore/mathml/MathMLInlineContainerElement.cpp
+++ b/WebCore/mathml/MathMLInlineContainerElement.cpp
@@ -31,6 +31,8 @@
#include "MathMLNames.h"
#include "RenderMathMLBlock.h"
+#include "RenderMathMLMath.h"
+#include "RenderMathMLRow.h"
#include "RenderMathMLSubSup.h"
#include "RenderMathMLUnderOver.h"
@@ -51,7 +53,11 @@ PassRefPtr<MathMLInlineContainerElement> MathMLInlineContainerElement::create(co
RenderObject* MathMLInlineContainerElement::createRenderer(RenderArena *arena, RenderStyle* style)
{
RenderObject* object = 0;
- if (hasLocalName(MathMLNames::msubTag))
+ if (hasLocalName(MathMLNames::mrowTag))
+ object = new (arena) RenderMathMLRow(this);
+ else if (hasLocalName(MathMLNames::mathTag))
+ object = new (arena) RenderMathMLMath(this);
+ else if (hasLocalName(MathMLNames::msubTag))
object = new (arena) RenderMathMLSubSup(this);
else if (hasLocalName(MathMLNames::msupTag))
object = new (arena) RenderMathMLSubSup(this);
diff --git a/WebCore/mathml/MathMLTextElement.cpp b/WebCore/mathml/MathMLTextElement.cpp
index 11d46c4..6f6bcbc 100644
--- a/WebCore/mathml/MathMLTextElement.cpp
+++ b/WebCore/mathml/MathMLTextElement.cpp
@@ -30,7 +30,7 @@
#include "MathMLTextElement.h"
#include "MathMLNames.h"
-#include "RenderObject.h"
+#include "RenderMathMLOperator.h"
namespace WebCore {
@@ -46,8 +46,14 @@ PassRefPtr<MathMLTextElement> MathMLTextElement::create(const QualifiedName& tag
return new MathMLTextElement(tagName, document);
}
-RenderObject* MathMLTextElement::createRenderer(RenderArena* , RenderStyle* style)
+RenderObject* MathMLTextElement::createRenderer(RenderArena* arena, RenderStyle* style)
{
+ if (hasLocalName(MathMLNames::moTag)) {
+ RenderObject* object = new (arena) RenderMathMLOperator(this);
+ object->setStyle(style);
+ return object;
+ }
+
return RenderObject::createObject(this, style);
}
diff --git a/WebCore/mathml/RenderMathMLMath.cpp b/WebCore/mathml/RenderMathMLMath.cpp
new file mode 100644
index 0000000..2b65f69
--- /dev/null
+++ b/WebCore/mathml/RenderMathMLMath.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2010 Alex Milowski (alex at milowski.com). All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if ENABLE(MATHML)
+
+#include "RenderMathMLMath.h"
+
+#include "MathMLNames.h"
+
+namespace WebCore {
+
+using namespace MathMLNames;
+
+RenderMathMLMath::RenderMathMLMath(Node* math)
+ : RenderMathMLRow(math)
+{
+}
+
+}
+
+#endif // ENABLE(MATHML)
+
diff --git a/WebCore/mathml/RenderMathMLMath.h b/WebCore/mathml/RenderMathMLMath.h
new file mode 100644
index 0000000..26f2093
--- /dev/null
+++ b/WebCore/mathml/RenderMathMLMath.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2010 Alex Milowski (alex at milowski.com). All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef RenderMathMLMath_h
+#define RenderMathMLMath_h
+
+#if ENABLE(MATHML)
+
+#include "RenderMathMLRow.h"
+
+namespace WebCore {
+
+class RenderMathMLMath : public RenderMathMLRow {
+public:
+ RenderMathMLMath(Node* container);
+ virtual bool isRenderMathMLMath() const { return true; }
+};
+
+}
+
+
+#endif // ENABLE(MATHML)
+#endif // RenderMathMLMath_h
diff --git a/WebCore/mathml/RenderMathMLOperator.cpp b/WebCore/mathml/RenderMathMLOperator.cpp
new file mode 100644
index 0000000..da9e8ec
--- /dev/null
+++ b/WebCore/mathml/RenderMathMLOperator.cpp
@@ -0,0 +1,328 @@
+/*
+ * Copyright (C) 2010 Alex Milowski (alex at milowski.com). All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if ENABLE(MATHML)
+
+#include "RenderMathMLOperator.h"
+
+#include "FontSelector.h"
+#include "MathMLNames.h"
+#include "RenderText.h"
+
+namespace WebCore {
+
+using namespace MathMLNames;
+
+RenderMathMLOperator::RenderMathMLOperator(Node* container)
+ : RenderMathMLBlock(container),
+ m_stretchHeight(0),
+ m_operator(0)
+{
+}
+
+RenderMathMLOperator::RenderMathMLOperator(Node* container, UChar operatorChar)
+ : RenderMathMLBlock(container),
+ m_stretchHeight(0),
+ m_operator(operatorChar)
+{
+}
+
+bool RenderMathMLOperator::isChildAllowed(RenderObject*, RenderStyle*) const
+{
+ return false;
+}
+
+void RenderMathMLOperator::stretchToHeight(int height)
+{
+ if (height == m_stretchHeight)
+ return;
+ m_stretchHeight = height;
+
+ updateBoxModelInfoFromStyle();
+ setNeedsLayoutAndPrefWidthsRecalc();
+ markContainingBlocksForLayout();
+}
+
+void RenderMathMLOperator::layout()
+{
+ // FIXME: This probably shouldn't be called here but when the operator
+ // isn't stretched (e.g. outside of a mrow), it needs to be called somehow
+ updateFromElement();
+ RenderBlock::layout();
+}
+
+// This is a table of stretchy characters.
+// FIXME: Should this be read from the unicode characteristics somehow?
+// table: stretchy operator, top char, extension char, bottom char, middle char
+static struct StretchyCharacter {
+ UChar character;
+ UChar topGlyph;
+ UChar extensionGlyph;
+ UChar bottomGlyph;
+ UChar middleGlyph;
+} stretchyCharacters[9] = {
+{ 0x28 , 0x239b, 0x239c, 0x239d, 0x0 }, // left parenthesis
+{ 0x29 , 0x239e, 0x239f, 0x23a0, 0x0 }, // right parenthesis
+{ 0x5b , 0x23a1, 0x23a2, 0x23a3, 0x0 }, // left square bracket
+{ 0x5d , 0x23a4, 0x23a5, 0x23a6, 0x0 }, // right square bracket
+{ 0x7b , 0x23a7, 0x23aa, 0x23a9, 0x23a8 }, // left curly bracket
+{ 0x7c , 0x23d0, 0x23d0, 0x23d0, 0x0 }, // vertical bar
+{ 0x7d , 0x23ab, 0x23aa, 0x23ad, 0x23ac }, // right curly bracket
+{ 0x222b, 0x2320, 0x23ae, 0x2321, 0x0 } // integral sign
+};
+
+// We stack glyphs using a 14px height with a displayed glyph height
+// of 10px. The line height is set to less than the 14px so that there
+// are no blank spaces between the stacked glyphs.
+//
+// Certain glyphs (e.g. middle and bottom) need to be adjusted upwards
+// in the stack so that there isn't a gap.
+//
+// All of these settings are represented in the constants below.
+
+static const int gGlyphFontSize = 14;
+static const int gGlyphLineHeight = 12;
+static const int gMinimumStretchHeight = 24;
+static const int gGlyphHeight = 10;
+static const int gMiddleGlyphTopAdjust = -2;
+static const int gBottomGlyphTopAdjust = -4;
+
+void RenderMathMLOperator::updateFromElement()
+{
+ // clear our children
+ while (firstChild()) {
+ RenderObject* obj = firstChild();
+ removeChild(obj);
+ }
+
+ // If the operator is fixed, it will be contained in m_operator
+ UChar firstChar = m_operator;
+
+ // This boolean indicates whether stretching is disabled via the markup.
+ bool stretchDisabled = false;
+
+ // We made need the element later if we can't stretch.
+ if (node()->nodeType() == Node::ELEMENT_NODE) {
+ if (Element* mo = static_cast<Element*>(node())) {
+ AtomicString stretchyAttr = mo->getAttribute(MathMLNames::stretchyAttr);
+ stretchDisabled = equalIgnoringCase(stretchyAttr, "false");
+
+ // If stretching isn't disabled, get the character from the text content.
+ if (!stretchDisabled && !firstChar) {
+ String opText = mo->textContent();
+ for (unsigned int i = 0; !firstChar && i < opText.length(); i++) {
+ if (!isSpaceOrNewline(opText[i]))
+ firstChar = opText[i];
+ }
+ }
+ }
+ }
+
+ // The 'index' holds the stretchable character's glyph information
+ int index = -1;
+
+ // isStretchy indicates whether the character is streatchable via a number of factors.
+ bool isStretchy = false;
+
+ // Check for a stretchable character.
+ if (!stretchDisabled && firstChar) {
+ const int maxIndex = sizeof(stretchyCharacters) / sizeof(stretchyCharacters[0]);
+ for (index++; index < maxIndex; index++) {
+ if (stretchyCharacters[index].character == firstChar) {
+ isStretchy = true;
+ break;
+ }
+ }
+ }
+
+ // We only stretch character if the stretch height is larger than a minimum size (e.g. 24px).
+ bool shouldStretch = isStretchy && m_stretchHeight>gMinimumStretchHeight;
+
+ // Either stretch is disabled or we don't have a stretchable character over the minimum height
+ if (stretchDisabled || !shouldStretch) {
+ m_isStacked = false;
+ RenderBlock* container = new (renderArena()) RenderBlock(node());
+
+ RefPtr<RenderStyle> newStyle = RenderStyle::create();
+ newStyle->inheritFrom(style());
+ newStyle->setDisplay(BLOCK);
+
+ // Check for a stretchable character that is under the minimum height and use the
+ // font size to adjust the glyph size.
+ int currentFontSize = style()->fontSize();
+ if (!stretchDisabled && isStretchy && m_stretchHeight > 0 && m_stretchHeight <= gMinimumStretchHeight && m_stretchHeight > currentFontSize) {
+ FontDescription* desc = new FontDescription();
+ desc->setIsAbsoluteSize(true);
+ desc->setSpecifiedSize(m_stretchHeight);
+ desc->setComputedSize(m_stretchHeight);
+ newStyle->setFontDescription(*desc);
+ newStyle->font().update(newStyle->font().fontSelector());
+ }
+
+ newStyle->setVerticalAlign(BASELINE);
+ container->setStyle(newStyle.release());
+ addChild(container);
+
+ // Build the text of the operator.
+ RenderText* text = 0;
+ if (m_operator)
+ text = new (renderArena()) RenderText(node(), StringImpl::create(&m_operator, 1));
+ else if (node()->nodeType() == Node::ELEMENT_NODE)
+ if (Element* mo = static_cast<Element*>(node()))
+ text = new (renderArena()) RenderText(node(), StringImpl::create(mo->textContent()));
+ // If we can't figure out the text, leave it blank.
+ if (text) {
+ text->setStyle(container->style());
+ container->addChild(text);
+ }
+ } else {
+ // Build stretchable characters as a stack of glyphs.
+ m_isStacked = true;
+
+ if (stretchyCharacters[index].middleGlyph) {
+ // We have a middle glyph (e.g. a curly bracket) that requires special processing.
+ int half = (m_stretchHeight - gGlyphHeight) / 2;
+ if (half <= gGlyphHeight) {
+ // We only have enough space for a single middle glyph.
+ createGlyph(stretchyCharacters[index].topGlyph, half);
+ createGlyph(stretchyCharacters[index].middleGlyph, gGlyphHeight, gMiddleGlyphTopAdjust);
+ createGlyph(stretchyCharacters[index].bottomGlyph, 0, gBottomGlyphTopAdjust);
+ } else {
+ // We have to extend both the top and bottom to the middle.
+ createGlyph(stretchyCharacters[index].topGlyph, gGlyphHeight);
+ int remaining = half - gGlyphHeight;
+ while (remaining > 0) {
+ if (remaining < gGlyphHeight) {
+ createGlyph(stretchyCharacters[index].extensionGlyph, remaining);
+ remaining = 0;
+ } else {
+ createGlyph(stretchyCharacters[index].extensionGlyph, gGlyphHeight);
+ remaining -= gGlyphHeight;
+ }
+ }
+
+ // The middle glyph in the stack.
+ createGlyph(stretchyCharacters[index].middleGlyph, gGlyphHeight, gMiddleGlyphTopAdjust);
+
+ // The remaining is the top half minus the middle glyph height.
+ remaining = half - gGlyphHeight;
+ // We need to make sure we have the full height in case the height is odd.
+ if (m_stretchHeight % 2 == 1)
+ remaining++;
+
+ // Extend to the bottom glyph.
+ while (remaining > 0) {
+ if (remaining < gGlyphHeight) {
+ createGlyph(stretchyCharacters[index].extensionGlyph, remaining);
+ remaining = 0;
+ } else {
+ createGlyph(stretchyCharacters[index].extensionGlyph, gGlyphHeight);
+ remaining -= gGlyphHeight;
+ }
+ }
+
+ // The bottom glyph in the stack.
+ createGlyph(stretchyCharacters[index].bottomGlyph, 0, gBottomGlyphTopAdjust);
+ }
+ } else {
+ // We do not have a middle glyph and so we just extend from the top to the bottom glyph.
+ int remaining = m_stretchHeight - 2 * gGlyphHeight;
+ createGlyph(stretchyCharacters[index].topGlyph, gGlyphHeight);
+ while (remaining > 0) {
+ if (remaining < gGlyphHeight) {
+ createGlyph(stretchyCharacters[index].extensionGlyph, remaining);
+ remaining = 0;
+ } else {
+ createGlyph(stretchyCharacters[index].extensionGlyph, gGlyphHeight);
+ remaining -= gGlyphHeight;
+ }
+ }
+ createGlyph(stretchyCharacters[index].bottomGlyph, 0, gBottomGlyphTopAdjust);
+ }
+ }
+}
+
+RefPtr<RenderStyle> RenderMathMLOperator::createStackableStyle(int size, int topRelative)
+{
+ RefPtr<RenderStyle> newStyle = RenderStyle::create();
+ newStyle->inheritFrom(style());
+ newStyle->setDisplay(BLOCK);
+
+ FontDescription* desc = new FontDescription();
+ desc->setIsAbsoluteSize(true);
+ desc->setSpecifiedSize(gGlyphFontSize);
+ desc->setComputedSize(gGlyphFontSize);
+ newStyle->setFontDescription(*desc);
+ newStyle->font().update(newStyle->font().fontSelector());
+ newStyle->setLineHeight(Length(gGlyphLineHeight, Fixed));
+ newStyle->setVerticalAlign(TOP);
+
+ if (size > 0)
+ newStyle->setMaxHeight(Length(size, Fixed));
+
+ newStyle->setOverflowY(OHIDDEN);
+ newStyle->setOverflowX(OHIDDEN);
+ if (topRelative) {
+ newStyle->setTop(Length(topRelative, Fixed));
+ newStyle->setPosition(RelativePosition);
+ }
+
+ return newStyle;
+}
+
+RenderBlock* RenderMathMLOperator::createGlyph(UChar glyph, int size, int charRelative, int topRelative)
+{
+ RenderBlock* container = new (renderArena()) RenderBlock(node());
+ container->setStyle(createStackableStyle(size, topRelative).release());
+ addChild(container);
+ RenderBlock* parent = container;
+ if (charRelative) {
+ RenderBlock* charBlock = new (renderArena()) RenderBlock(node());
+ RefPtr<RenderStyle> charStyle = RenderStyle::create();
+ charStyle->inheritFrom(container->style());
+ charStyle->setDisplay(INLINE_BLOCK);
+ charStyle->setTop(Length(charRelative, Fixed));
+ charStyle->setPosition(RelativePosition);
+ charBlock->setStyle(charStyle);
+ parent->addChild(charBlock);
+ parent = charBlock;
+ }
+
+ RenderText* text = new (renderArena()) RenderText(node(), StringImpl::create(&glyph, 1));
+ text->setStyle(container->style());
+ parent->addChild(text);
+ return container;
+}
+
+int RenderMathMLOperator::baselinePosition(bool firstLine, bool isRootLineBox) const
+{
+ return !m_isStacked && firstChild() ? firstChild()->baselinePosition(firstLine, isRootLineBox) : offsetHeight();
+}
+
+}
+
+#endif
diff --git a/WebCore/mathml/RenderMathMLOperator.h b/WebCore/mathml/RenderMathMLOperator.h
new file mode 100644
index 0000000..6566dd7
--- /dev/null
+++ b/WebCore/mathml/RenderMathMLOperator.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2010 Alex Milowski (alex at milowski.com). All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef RenderMathMLOperator_h
+#define RenderMathMLOperator_h
+
+#if ENABLE(MATHML)
+
+#include "RenderMathMLBlock.h"
+
+namespace WebCore {
+
+class RenderMathMLOperator : public RenderMathMLBlock {
+public:
+ RenderMathMLOperator(Node* container);
+ RenderMathMLOperator(Node* container, UChar operatorChar);
+ virtual bool isRenderMathMLOperator() const { return true; }
+ virtual void stretchToHeight(int pixelHeight);
+ virtual void updateFromElement();
+ virtual bool isChildAllowed(RenderObject*, RenderStyle*) const;
+ virtual int baselinePosition(bool , bool) const;
+
+protected:
+ virtual void layout();
+ virtual RefPtr<RenderStyle> createStackableStyle(int size, int topRelative);
+ virtual RenderBlock* createGlyph(UChar glyph, int size = 0, int charRelative = 0, int topRelative = 0);
+
+private:
+ int m_stretchHeight;
+ bool m_isStacked;
+ UChar m_operator;
+};
+
+inline RenderMathMLOperator* toRenderMathMLOperator(RenderMathMLBlock* block)
+{
+ ASSERT(!block || block->isRenderMathMLOperator());
+ return static_cast<RenderMathMLOperator*>(block);
+}
+
+inline const RenderMathMLOperator* toRenderMathMLOperator(const RenderMathMLBlock* block)
+{
+ ASSERT(!block || block->isRenderMathMLOperator());
+ return static_cast<const RenderMathMLOperator*>(block);
+}
+
+}
+
+
+#endif // ENABLE(MATHML)
+#endif // RenderMathMLOperator_h
diff --git a/WebCore/mathml/RenderMathMLRow.cpp b/WebCore/mathml/RenderMathMLRow.cpp
new file mode 100644
index 0000000..1bb656f
--- /dev/null
+++ b/WebCore/mathml/RenderMathMLRow.cpp
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2010 Alex Milowski (alex at milowski.com). All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if ENABLE(MATHML)
+
+#include "RenderMathMLRow.h"
+
+#include "MathMLNames.h"
+#include "RenderMathMLOperator.h"
+
+namespace WebCore {
+
+using namespace MathMLNames;
+
+RenderMathMLRow::RenderMathMLRow(Node* row)
+ : RenderMathMLBlock(row)
+{
+}
+
+int RenderMathMLRow::nonOperatorHeight() const
+{
+ int maxHeight = 0;
+ for (RenderObject* current = firstChild(); current; current = current->nextSibling()) {
+ if (current->isRenderMathMLBlock()) {
+ RenderMathMLBlock* block = toRenderMathMLBlock(current);
+ int blockHeight = block->nonOperatorHeight();
+ // Check to see if this box has a larger height
+ if (blockHeight > maxHeight)
+ maxHeight = blockHeight;
+ } else if (current->isBoxModelObject()) {
+ RenderBoxModelObject* box = toRenderBoxModelObject(current);
+ // Check to see if this box has a larger height
+ if (box->offsetHeight() > maxHeight)
+ maxHeight = box->offsetHeight();
+ }
+
+ }
+ return maxHeight;
+}
+
+void RenderMathMLRow::layout()
+{
+ RenderBlock::layout();
+
+ // Calculate the maximum height of the row without the operators.
+ int maxHeight = nonOperatorHeight();
+
+ // Set the maximum height of the row for intermediate layouts.
+ style()->setHeight(Length(maxHeight, Fixed));
+
+ // Notify contained operators they may need to re-layout their stretched operators.
+ // We need to keep track of the number of children and operators because a row of
+ // operators needs some special handling.
+ int childCount = 0;
+ int operatorCount = 0;
+ for (RenderObject* current = firstChild(); current; current = current->nextSibling()) {
+ childCount++;
+ if (current->isRenderMathMLBlock()) {
+ RenderMathMLBlock* block = toRenderMathMLBlock(current);
+ block->stretchToHeight(maxHeight);
+ if (block->isRenderMathMLOperator())
+ operatorCount++;
+ }
+ }
+
+ // Layout the non-operators which have just been stretched.
+ setNeedsLayoutAndPrefWidthsRecalc();
+ markContainingBlocksForLayout();
+ RenderBlock::layout();
+
+ // Make a second pass with the real height of the operators.
+ int operatorHeight = 0;
+ for (RenderObject* current = firstChild(); current; current = current->nextSibling()) {
+ if (current->isRenderMathMLBlock()) {
+ RenderMathMLBlock* block = toRenderMathMLBlock(current);
+ if (!block->hasBase() && !block->isRenderMathMLOperator()) {
+ // Check to see if this box has a larger height.
+ if (block->offsetHeight() > maxHeight)
+ maxHeight = block->offsetHeight();
+ }
+ if (block->isRenderMathMLOperator())
+ if (block->offsetHeight() > operatorHeight)
+ operatorHeight = block->offsetHeight();
+ } else if (current->isBoxModelObject()) {
+ RenderBoxModelObject* box = toRenderBoxModelObject(current);
+ // Check to see if this box has a larger height.
+ if (box->offsetHeight() > maxHeight)
+ maxHeight = box->offsetHeight();
+ }
+ }
+
+ if (childCount > 0 && childCount == operatorCount) {
+ // We have only operators and so set the max height to the operator height.
+ maxHeight = operatorHeight;
+ }
+
+ int stretchHeight = maxHeight;
+
+ // Stretch the operators again and re-calculate the row height.
+ for (RenderObject* current = firstChild(); current; current = current->nextSibling()) {
+ if (current->isRenderMathMLBlock()) {
+ RenderMathMLBlock* block = toRenderMathMLBlock(current);
+ if (block->isRenderMathMLOperator()) {
+ RenderMathMLOperator* mathop = toRenderMathMLOperator(block);
+ mathop->stretchToHeight(stretchHeight);
+ } else {
+ block->stretchToHeight(stretchHeight);
+ RenderBoxModelObject* box = toRenderBoxModelObject(current);
+ // Check to see if this box has a larger height
+ if (box->offsetHeight() > maxHeight)
+ maxHeight = box->offsetHeight();
+ }
+ } else if (current->isBoxModelObject()) {
+ RenderBoxModelObject* box = toRenderBoxModelObject(current);
+ // Check to see if this box has a larger height
+ if (box->offsetHeight() > maxHeight)
+ maxHeight = box->offsetHeight();
+ }
+ }
+
+ // Set the maximum height of the row based on the calculations.
+ style()->setHeight(Length(maxHeight, Fixed));
+
+ // Do the final layout by calling our parent's layout again.
+ setNeedsLayoutAndPrefWidthsRecalc();
+ markContainingBlocksForLayout();
+ RenderBlock::layout();
+}
+
+}
+
+#endif // ENABLE(MATHML)
+
diff --git a/WebCore/mathml/RenderMathMLRow.h b/WebCore/mathml/RenderMathMLRow.h
new file mode 100644
index 0000000..a88b212
--- /dev/null
+++ b/WebCore/mathml/RenderMathMLRow.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Alex Milowski (alex at milowski.com). All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef RenderMathMLRow_h
+#define RenderMathMLRow_h
+
+#if ENABLE(MATHML)
+
+#include "RenderMathMLBlock.h"
+
+namespace WebCore {
+
+class RenderMathMLRow : public RenderMathMLBlock {
+public:
+ RenderMathMLRow(Node* container);
+ virtual bool isRenderMathMLRow() const { return true; }
+ virtual int nonOperatorHeight() const;
+protected:
+ virtual void layout();
+};
+
+}
+
+
+#endif // ENABLE(MATHML)
+#endif // RenderMathMLRow_h
diff --git a/WebCore/mathml/RenderMathMLUnderOver.cpp b/WebCore/mathml/RenderMathMLUnderOver.cpp
index 4992a08..514b872 100644
--- a/WebCore/mathml/RenderMathMLUnderOver.cpp
+++ b/WebCore/mathml/RenderMathMLUnderOver.cpp
@@ -36,12 +36,7 @@ namespace WebCore {
using namespace MathMLNames;
-/*
-static const double gUnderNormalAdjust = -0.4;
-static const double gFontAdjust = 0.75;
-*/
-
-static const double gOverSpacingAdjustment = 0.667;
+static const double gOverSpacingAdjustment = 0.5;
RenderMathMLUnderOver::RenderMathMLUnderOver(Node* expression)
: RenderMathMLBlock(expression)
diff --git a/WebCore/mathml/mathtags.in b/WebCore/mathml/mathtags.in
index c853fca..36333a8 100644
--- a/WebCore/mathml/mathtags.in
+++ b/WebCore/mathml/mathtags.in
@@ -12,9 +12,10 @@ munder interfaceName=MathMLInlineContainerElement
munderover interfaceName=MathMLInlineContainerElement
msqrt interfaceName=MathMLInlineContainerElement
mroot interfaceName=MathMLInlineContainerElement
-mi interfaceName=MathMLElement, createWithNew
-mn interfaceName=MathMLElement, createWithNew
-mo interfaceName=MathMLElement, createWithNew
+mi interfaceName=MathMLTextElement
+mn interfaceName=MathMLTextElement
+mo interfaceName=MathMLTextElement
+mtext interfaceName=MathMLTextElement
msub interfaceName=MathMLElement, createWithNew
msup interfaceName=MathMLElement, createWithNew
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list