Changeset 202156 in webkit


Ignore:
Timestamp:
Jun 16, 2016 9:34:24 PM (8 years ago)
Author:
fred.wang@free.fr
Message:

Add separate MathOperator for selection/measuring/drawing of stretchy operators
https://bugs.webkit.org/show_bug.cgi?id=152244

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-16
Reviewed by Brent Fulgham.

Source/WebCore:

We complete the class to select, measure and draw stretchy operators that is independent
from RenderMathMLOperator. That way, we will be able use stretchy operator without having
to introduce & manage anonymous RenderMathMLOperator's
(e.g for <mroot>, <msqrt> and <mfenced>).

No new tests, already covered by existing tests.

  • rendering/mathml/MathOperator.cpp:

(WebCore::ascentForGlyph): Add this helper function to get glyph ascent.
(WebCore::descentForGlyph): Add this helper function to get glyph descent.
(WebCore::MathOperator::reset): Initialize all the data and calculate ascent/descent of the
base glyph.
(WebCore::MathOperator::setSizeVariant): Set the width/ascent/descent.
(WebCore::MathOperator::setGlyphAssembly): Ditto.
(WebCore::MathOperator::calculateDisplayStyleLargeOperator): Remove the STIX Word hack and
change m_maxPreferredWidth to use the actual width instead.
(WebCore::MathOperator::stretchTo): New functions to execute the actual operator streching.
(WebCore::MathOperator::fillWithVerticalExtensionGlyph): Add a FIXME for bug 155434.
(WebCore::MathOperator::fillWithHorizontalExtensionGlyph): Align all the glyph baselines on
the same axis, given by m_ascent.
Add a FIXME for bug 155434.
(WebCore::MathOperator::paintHorizontalGlyphAssembly): Ditto.
(WebCore::MathOperator::paint): Public function to do the painting.
(WebCore::MathOperator::paintVerticalGlyphAssembly): Deleted.

  • rendering/mathml/MathOperator.h: Update declarations and make most of the members private.

(WebCore::MathOperator::ascent): Function to expose m_ascent.
(WebCore::MathOperator::descent): Function to expose m_descent.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::stretchTo): Forward the stretching call to MathOperator.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Unfold advanceForGlyph
since we delete RenderMathMLOperator::advanceForGlyph. Just rely on
MathOperator::maxPreferredWidth to determine the preferred width of stretchy operators.
For horizontal operators, we just use the width of the base glyph.
Finally, we remove the dirty flag on preferred logical width.
(WebCore::RenderMathMLOperator::rebuildTokenContent): Reinit the MathOperator instance.
(WebCore::RenderMathMLOperator::updateFromElement): Force more updates of
RenderMathMLOperator to avoid test breakage.
(WebCore::RenderMathMLOperator::styleDidChange): Call MathOperator::reset to take into
account style change.
(WebCore::RenderMathMLOperator::updateStyle): Remove unused code.
(WebCore::RenderMathMLOperator::firstLineBaseline): Use MathOperator::ascent() function.
(WebCore::RenderMathMLOperator::computeLogicalHeight): Use MathOperator::ascent() and
MathOperator::descent() functions to calculate the height.
(WebCore::RenderMathMLOperator::paint): Only stretched operators are treated specially.
We center horizontal operator and forward the paint() call to MathOperator.
(WebCore::RenderMathMLOperator::trailingSpaceError): The error is now just the difference
between the values returned by MathOperator::maxPreferredWidth() and
MathOperator::width().
(WebCore::boundsForGlyph): Deleted.
(WebCore::heightForGlyph): Deleted.
(WebCore::advanceWidthForGlyph): Deleted.
(WebCore::RenderMathMLOperator::updateStyle): Deleted.

LayoutTests:

Update expectations for some MathML tests containing operators/radicals
to take into account small rendering changes.

  • platform/gtk/mathml/opentype/horizontal-expected.png:
  • platform/gtk/mathml/opentype/horizontal-expected.txt:
  • platform/gtk/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/gtk/mathml/opentype/large-operators-expected.png:
  • platform/gtk/mathml/opentype/large-operators-expected.txt:
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png:
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
  • platform/gtk/mathml/opentype/vertical-expected.png:
  • platform/gtk/mathml/opentype/vertical-expected.txt:
  • platform/gtk/mathml/presentation/mo-stretch-expected.png:
  • platform/gtk/mathml/presentation/mo-stretch-expected.txt:
  • platform/gtk/mathml/presentation/roots-expected.txt:
  • platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png:
  • platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
Location:
trunk
Files:
22 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r202155 r202156  
     12016-06-16  Frederic Wang  <fwang@igalia.com>
     2
     3        Add separate MathOperator for selection/measuring/drawing of stretchy operators
     4        https://bugs.webkit.org/show_bug.cgi?id=152244
     5
     6        Reviewed by Brent Fulgham.
     7
     8        Update expectations for some MathML tests containing operators/radicals
     9        to take into account small rendering changes.
     10
     11        * platform/gtk/mathml/opentype/horizontal-expected.png:
     12        * platform/gtk/mathml/opentype/horizontal-expected.txt:
     13        * platform/gtk/mathml/opentype/horizontal-munderover-expected.txt:
     14        * platform/gtk/mathml/opentype/large-operators-expected.png:
     15        * platform/gtk/mathml/opentype/large-operators-expected.txt:
     16        * platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
     17        * platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:
     18        * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png:
     19        * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
     20        * platform/gtk/mathml/opentype/vertical-expected.png:
     21        * platform/gtk/mathml/opentype/vertical-expected.txt:
     22        * platform/gtk/mathml/presentation/mo-stretch-expected.png:
     23        * platform/gtk/mathml/presentation/mo-stretch-expected.txt:
     24        * platform/gtk/mathml/presentation/roots-expected.txt:
     25        * platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt:
     26        * platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png:
     27        * platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
     28
    1292016-06-16  Jiewen Tan  <jiewen_tan@apple.com>
    230
  • trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.txt

    r199293 r202156  
    66      RenderBlock {P} at (0,0) size 784x17
    77        RenderMathMLMath {math} at (0,4) size 24x10 [padding: 0 1 0 1]
    8           RenderMathMLUnderOver {mover} at (1,0) size 29x10
    9             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
    10             RenderMathMLOperator {mo} at (0,0) size 29x8
    11               RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
     8          RenderMathMLUnderOver {mover} at (1,0) size 22x10
     9            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
     10            RenderMathMLOperator {mo} at (1,0) size 20x8
     11              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    1212                RenderBlock (anonymous) at (0,0) size 12x8
    1313                  RenderText at (0,-36) size 12x80
     
    1616          text run at (24,0) width 4: " "
    1717        RenderMathMLMath {math} at (28,4) size 24x10 [padding: 0 1 0 1]
    18           RenderMathMLUnderOver {mover} at (1,0) size 29x10
    19             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
    20             RenderMathMLOperator {mo} at (0,0) size 29x8
    21               RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
     18          RenderMathMLUnderOver {mover} at (1,0) size 22x10
     19            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
     20            RenderMathMLOperator {mo} at (1,0) size 20x8
     21              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    2222                RenderBlock (anonymous) at (0,0) size 12x8
    2323                  RenderText at (0,-36) size 12x80
     
    2626          text run at (52,0) width 4: " "
    2727        RenderMathMLMath {math} at (56,4) size 24x10 [padding: 0 1 0 1]
    28           RenderMathMLUnderOver {mover} at (1,0) size 29x10
    29             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
    30             RenderMathMLOperator {mo} at (0,0) size 29x8
    31               RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
     28          RenderMathMLUnderOver {mover} at (1,0) size 22x10
     29            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
     30            RenderMathMLOperator {mo} at (1,0) size 20x8
     31              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    3232                RenderBlock (anonymous) at (0,0) size 12x8
    3333                  RenderText at (0,-36) size 12x80
     
    3636          text run at (80,0) width 4: " "
    3737        RenderMathMLMath {math} at (84,4) size 24x10 [padding: 0 1 0 1]
    38           RenderMathMLUnderOver {mover} at (1,0) size 29x10
    39             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
    40             RenderMathMLOperator {mo} at (0,0) size 29x8
    41               RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
     38          RenderMathMLUnderOver {mover} at (1,0) size 22x10
     39            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
     40            RenderMathMLOperator {mo} at (1,0) size 20x8
     41              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    4242                RenderBlock (anonymous) at (0,0) size 12x8
    4343                  RenderText at (0,-36) size 12x80
     
    4646          text run at (108,0) width 4: " "
    4747        RenderMathMLMath {math} at (112,4) size 24x10 [padding: 0 1 0 1]
    48           RenderMathMLUnderOver {mover} at (1,0) size 29x10
    49             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
    50             RenderMathMLOperator {mo} at (0,0) size 29x8
    51               RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
     48          RenderMathMLUnderOver {mover} at (1,0) size 22x10
     49            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
     50            RenderMathMLOperator {mo} at (1,0) size 20x8
     51              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    5252                RenderBlock (anonymous) at (0,0) size 12x8
    5353                  RenderText at (0,-36) size 12x80
     
    5656          text run at (136,0) width 4: " "
    5757        RenderMathMLMath {math} at (140,5) size 24x9 [padding: 0 1 0 1]
    58           RenderMathMLUnderOver {mover} at (1,0) size 29x9
    59             RenderMathMLSpace {mspace} at (3,7) size 23x2 [bgcolor=#0000FF]
    60             RenderMathMLOperator {mo} at (0,0) size 29x7
    61               RenderMathMLBlock (anonymous, flex) at (3,0) size 23x7
     58          RenderMathMLUnderOver {mover} at (1,0) size 22x9
     59            RenderMathMLSpace {mspace} at (0,7) size 22x2 [bgcolor=#0000FF]
     60            RenderMathMLOperator {mo} at (1,0) size 20x7
     61              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x7
    6262                RenderBlock (anonymous) at (0,0) size 12x7
    6363                  RenderText at (0,-36) size 12x80
     
    6666          text run at (164,0) width 4: " "
    6767        RenderMathMLMath {math} at (168,7) size 24x7 [padding: 0 1 0 1]
    68           RenderMathMLUnderOver {mover} at (1,0) size 29x7
    69             RenderMathMLSpace {mspace} at (3,5) size 23x2 [bgcolor=#0000FF]
    70             RenderMathMLOperator {mo} at (0,0) size 29x5
    71               RenderMathMLBlock (anonymous, flex) at (3,0) size 23x5
     68          RenderMathMLUnderOver {mover} at (1,0) size 22x7
     69            RenderMathMLSpace {mspace} at (0,5) size 22x2 [bgcolor=#0000FF]
     70            RenderMathMLOperator {mo} at (1,0) size 20x5
     71              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x5
    7272                RenderBlock (anonymous) at (0,0) size 12x5
    7373                  RenderText at (0,-39) size 12x80
     
    7676          text run at (192,0) width 4: " "
    7777        RenderMathMLMath {math} at (196,5) size 24x9 [padding: 0 1 0 1]
    78           RenderMathMLUnderOver {mover} at (1,0) size 29x9
    79             RenderMathMLSpace {mspace} at (3,7) size 23x2 [bgcolor=#0000FF]
    80             RenderMathMLOperator {mo} at (0,0) size 29x7
    81               RenderMathMLBlock (anonymous, flex) at (3,0) size 23x7
     78          RenderMathMLUnderOver {mover} at (1,0) size 22x9
     79            RenderMathMLSpace {mspace} at (0,7) size 22x2 [bgcolor=#0000FF]
     80            RenderMathMLOperator {mo} at (1,0) size 20x7
     81              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x7
    8282                RenderBlock (anonymous) at (0,0) size 12x7
    8383                  RenderText at (0,-36) size 12x80
     
    8686          text run at (220,0) width 4: " "
    8787        RenderMathMLMath {math} at (224,4) size 24x10 [padding: 0 1 0 1]
    88           RenderMathMLUnderOver {mover} at (1,0) size 29x10
    89             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
    90             RenderMathMLOperator {mo} at (0,0) size 29x8
    91               RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
     88          RenderMathMLUnderOver {mover} at (1,0) size 22x10
     89            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
     90            RenderMathMLOperator {mo} at (1,0) size 20x8
     91              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    9292                RenderBlock (anonymous) at (0,0) size 12x8
    9393                  RenderText at (0,-36) size 12x80
     
    9696          text run at (248,0) width 4: " "
    9797        RenderMathMLMath {math} at (252,4) size 24x10 [padding: 0 1 0 1]
    98           RenderMathMLUnderOver {mover} at (1,0) size 29x10
    99             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
    100             RenderMathMLOperator {mo} at (0,0) size 29x8
    101               RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
     98          RenderMathMLUnderOver {mover} at (1,0) size 22x10
     99            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
     100            RenderMathMLOperator {mo} at (1,0) size 20x8
     101              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    102102                RenderBlock (anonymous) at (0,0) size 12x8
    103103                  RenderText at (0,-36) size 12x80
     
    106106          text run at (276,0) width 4: " "
    107107        RenderMathMLMath {math} at (280,4) size 24x10 [padding: 0 1 0 1]
    108           RenderMathMLUnderOver {mover} at (1,0) size 29x10
    109             RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
    110             RenderMathMLOperator {mo} at (0,0) size 29x8
    111               RenderMathMLBlock (anonymous, flex) at (3,0) size 23x8
     108          RenderMathMLUnderOver {mover} at (1,0) size 22x10
     109            RenderMathMLSpace {mspace} at (0,8) size 22x2 [bgcolor=#0000FF]
     110            RenderMathMLOperator {mo} at (1,0) size 20x8
     111              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    112112                RenderBlock (anonymous) at (0,0) size 12x8
    113113                  RenderText at (0,-36) size 12x80
     
    116116          text run at (304,0) width 4: " "
    117117        RenderMathMLMath {math} at (308,2) size 24x12 [padding: 0 1 0 1]
    118           RenderMathMLUnderOver {mover} at (1,0) size 29x12
    119             RenderMathMLSpace {mspace} at (3,10) size 23x2 [bgcolor=#0000FF]
    120             RenderMathMLOperator {mo} at (0,0) size 29x10
    121               RenderMathMLBlock (anonymous, flex) at (3,0) size 23x10
     118          RenderMathMLUnderOver {mover} at (1,0) size 22x12
     119            RenderMathMLSpace {mspace} at (0,10) size 22x2 [bgcolor=#0000FF]
     120            RenderMathMLOperator {mo} at (1,0) size 20x10
     121              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x10
    122122                RenderBlock (anonymous) at (0,0) size 12x10
    123123                  RenderText at (0,-35) size 12x80
     
    126126          text run at (332,0) width 4: " "
    127127        RenderMathMLMath {math} at (336,2) size 24x12 [padding: 0 1 0 1]
    128           RenderMathMLUnderOver {mover} at (1,0) size 29x12
    129             RenderMathMLSpace {mspace} at (3,10) size 23x2 [bgcolor=#0000FF]
    130             RenderMathMLOperator {mo} at (0,0) size 29x10
    131               RenderMathMLBlock (anonymous, flex) at (3,0) size 23x10
     128          RenderMathMLUnderOver {mover} at (1,0) size 22x12
     129            RenderMathMLSpace {mspace} at (0,10) size 22x2 [bgcolor=#0000FF]
     130            RenderMathMLOperator {mo} at (1,0) size 20x10
     131              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x10
    132132                RenderBlock (anonymous) at (0,0) size 12x10
    133133                  RenderText at (0,-35) size 12x80
     
    138138          RenderMathMLUnderOver {mover} at (1,0) size 22x5
    139139            RenderMathMLSpace {mspace} at (0,3) size 22x2 [bgcolor=#0000FF]
    140             RenderMathMLOperator {mo} at (0,0) size 22x3
    141               RenderMathMLBlock (anonymous, flex) at (0,0) size 22x3
     140            RenderMathMLOperator {mo} at (9,0) size 4x3
     141              RenderMathMLBlock (anonymous, flex) at (0,0) size 4x3
    142142                RenderBlock (anonymous) at (0,0) size 4x3
    143143                  RenderText at (0,-34) size 4x80
     
    148148          RenderMathMLUnderOver {mover} at (1,0) size 22x5
    149149            RenderMathMLSpace {mspace} at (0,3) size 22x2 [bgcolor=#0000FF]
    150             RenderMathMLOperator {mo} at (0,0) size 22x3
    151               RenderMathMLBlock (anonymous, flex) at (0,0) size 22x3
     150            RenderMathMLOperator {mo} at (9,0) size 4x3
     151              RenderMathMLBlock (anonymous, flex) at (0,0) size 4x3
    152152                RenderBlock (anonymous) at (0,0) size 4x3
    153153                  RenderText at (0,-43) size 4x80
     
    156156          text run at (416,0) width 4: " "
    157157        RenderMathMLMath {math} at (420,8) size 24x6 [padding: 0 1 0 1]
    158           RenderMathMLUnderOver {mover} at (1,0) size 24x6
    159             RenderMathMLSpace {mspace} at (1,4) size 22x2 [bgcolor=#0000FF]
    160             RenderMathMLOperator {mo} at (0,0) size 24x4
    161               RenderMathMLBlock (anonymous, flex) at (0,0) size 24x4
     158          RenderMathMLUnderOver {mover} at (1,0) size 22x6
     159            RenderMathMLSpace {mspace} at (0,4) size 22x2 [bgcolor=#0000FF]
     160            RenderMathMLOperator {mo} at (8,0) size 6x4
     161              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x4
    162162                RenderBlock (anonymous) at (0,0) size 6x4
    163163                  RenderText at (0,-34) size 6x80
     
    166166          text run at (444,0) width 4: " "
    167167        RenderMathMLMath {math} at (448,7) size 24x7 [padding: 0 1 0 1]
    168           RenderMathMLUnderOver {mover} at (1,0) size 24x7
    169             RenderMathMLSpace {mspace} at (1,5) size 22x2 [bgcolor=#0000FF]
    170             RenderMathMLOperator {mo} at (0,0) size 24x5
    171               RenderMathMLBlock (anonymous, flex) at (0,0) size 24x4
     168          RenderMathMLUnderOver {mover} at (1,0) size 22x7
     169            RenderMathMLSpace {mspace} at (0,5) size 22x2 [bgcolor=#0000FF]
     170            RenderMathMLOperator {mo} at (8,0) size 6x5
     171              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x4
    172172                RenderBlock (anonymous) at (0,0) size 6x4
    173173                  RenderText at (0,-43) size 6x80
     
    176176          text run at (472,0) width 4: " "
    177177        RenderMathMLMath {math} at (476,8) size 24x6 [padding: 0 1 0 1]
    178           RenderMathMLUnderOver {mover} at (1,0) size 24x6
    179             RenderMathMLSpace {mspace} at (1,4) size 22x2 [bgcolor=#0000FF]
    180             RenderMathMLOperator {mo} at (0,0) size 24x4
    181               RenderMathMLBlock (anonymous, flex) at (0,0) size 24x4
     178          RenderMathMLUnderOver {mover} at (1,0) size 22x6
     179            RenderMathMLSpace {mspace} at (0,4) size 22x2 [bgcolor=#0000FF]
     180            RenderMathMLOperator {mo} at (8,0) size 6x4
     181              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x4
    182182                RenderBlock (anonymous) at (0,0) size 6x4
    183183                  RenderText at (0,-33) size 6x80
     
    186186          text run at (500,0) width 4: " "
    187187        RenderMathMLMath {math} at (504,7) size 24x7 [padding: 0 1 0 1]
    188           RenderMathMLUnderOver {mover} at (1,0) size 24x7
    189             RenderMathMLSpace {mspace} at (1,5) size 22x2 [bgcolor=#0000FF]
    190             RenderMathMLOperator {mo} at (0,0) size 24x5
    191               RenderMathMLBlock (anonymous, flex) at (0,0) size 24x5
     188          RenderMathMLUnderOver {mover} at (1,0) size 22x7
     189            RenderMathMLSpace {mspace} at (0,5) size 22x2 [bgcolor=#0000FF]
     190            RenderMathMLOperator {mo} at (8,0) size 6x5
     191              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x5
    192192                RenderBlock (anonymous) at (0,0) size 6x5
    193193                  RenderText at (0,-43) size 6x80
     
    196196      RenderBlock {P} at (0,33) size 784x34
    197197        RenderMathMLMath {math} at (0,4) size 52x10 [padding: 0 1 0 1]
    198           RenderMathMLUnderOver {mover} at (1,0) size 57x10
    199             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
    200             RenderMathMLOperator {mo} at (0,0) size 57x8
    201               RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
     198          RenderMathMLUnderOver {mover} at (1,0) size 50x10
     199            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
     200            RenderMathMLOperator {mo} at (15,0) size 20x8
     201              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    202202                RenderBlock (anonymous) at (0,0) size 12x8
    203203                  RenderText at (0,-36) size 12x80
     
    206206          text run at (52,0) width 4: " "
    207207        RenderMathMLMath {math} at (56,4) size 52x10 [padding: 0 1 0 1]
    208           RenderMathMLUnderOver {mover} at (1,0) size 57x10
    209             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
    210             RenderMathMLOperator {mo} at (0,0) size 57x8
    211               RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
     208          RenderMathMLUnderOver {mover} at (1,0) size 50x10
     209            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
     210            RenderMathMLOperator {mo} at (15,0) size 20x8
     211              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    212212                RenderBlock (anonymous) at (0,0) size 12x8
    213213                  RenderText at (0,-36) size 12x80
     
    216216          text run at (108,0) width 4: " "
    217217        RenderMathMLMath {math} at (112,4) size 52x10 [padding: 0 1 0 1]
    218           RenderMathMLUnderOver {mover} at (1,0) size 57x10
    219             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
    220             RenderMathMLOperator {mo} at (0,0) size 57x8
    221               RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
     218          RenderMathMLUnderOver {mover} at (1,0) size 50x10
     219            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
     220            RenderMathMLOperator {mo} at (15,0) size 20x8
     221              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    222222                RenderBlock (anonymous) at (0,0) size 12x8
    223223                  RenderText at (0,-36) size 12x80
     
    226226          text run at (164,0) width 4: " "
    227227        RenderMathMLMath {math} at (168,4) size 52x10 [padding: 0 1 0 1]
    228           RenderMathMLUnderOver {mover} at (1,0) size 57x10
    229             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
    230             RenderMathMLOperator {mo} at (0,0) size 57x8
    231               RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
     228          RenderMathMLUnderOver {mover} at (1,0) size 50x10
     229            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
     230            RenderMathMLOperator {mo} at (15,0) size 20x8
     231              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    232232                RenderBlock (anonymous) at (0,0) size 12x8
    233233                  RenderText at (0,-36) size 12x80
     
    236236          text run at (220,0) width 4: " "
    237237        RenderMathMLMath {math} at (224,4) size 52x10 [padding: 0 1 0 1]
    238           RenderMathMLUnderOver {mover} at (1,0) size 57x10
    239             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
    240             RenderMathMLOperator {mo} at (0,0) size 57x8
    241               RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
     238          RenderMathMLUnderOver {mover} at (1,0) size 50x10
     239            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
     240            RenderMathMLOperator {mo} at (15,0) size 20x8
     241              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    242242                RenderBlock (anonymous) at (0,0) size 12x8
    243243                  RenderText at (0,-36) size 12x80
     
    246246          text run at (276,0) width 4: " "
    247247        RenderMathMLMath {math} at (280,5) size 52x9 [padding: 0 1 0 1]
    248           RenderMathMLUnderOver {mover} at (1,0) size 57x9
    249             RenderMathMLSpace {mspace} at (3,7) size 51x2 [bgcolor=#008000]
    250             RenderMathMLOperator {mo} at (0,0) size 57x7
    251               RenderMathMLBlock (anonymous, flex) at (3,0) size 51x7
     248          RenderMathMLUnderOver {mover} at (1,0) size 50x9
     249            RenderMathMLSpace {mspace} at (0,7) size 50x2 [bgcolor=#008000]
     250            RenderMathMLOperator {mo} at (15,0) size 20x7
     251              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x7
    252252                RenderBlock (anonymous) at (0,0) size 12x7
    253253                  RenderText at (0,-36) size 12x80
     
    256256          text run at (332,0) width 4: " "
    257257        RenderMathMLMath {math} at (336,7) size 52x7 [padding: 0 1 0 1]
    258           RenderMathMLUnderOver {mover} at (1,0) size 57x7
    259             RenderMathMLSpace {mspace} at (3,5) size 51x2 [bgcolor=#008000]
    260             RenderMathMLOperator {mo} at (0,0) size 57x5
    261               RenderMathMLBlock (anonymous, flex) at (3,0) size 51x5
     258          RenderMathMLUnderOver {mover} at (1,0) size 50x7
     259            RenderMathMLSpace {mspace} at (0,5) size 50x2 [bgcolor=#008000]
     260            RenderMathMLOperator {mo} at (15,0) size 20x5
     261              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x5
    262262                RenderBlock (anonymous) at (0,0) size 12x5
    263263                  RenderText at (0,-39) size 12x80
     
    266266          text run at (388,0) width 4: " "
    267267        RenderMathMLMath {math} at (392,5) size 52x9 [padding: 0 1 0 1]
    268           RenderMathMLUnderOver {mover} at (1,0) size 57x9
    269             RenderMathMLSpace {mspace} at (3,7) size 51x2 [bgcolor=#008000]
    270             RenderMathMLOperator {mo} at (0,0) size 57x7
    271               RenderMathMLBlock (anonymous, flex) at (3,0) size 51x7
     268          RenderMathMLUnderOver {mover} at (1,0) size 50x9
     269            RenderMathMLSpace {mspace} at (0,7) size 50x2 [bgcolor=#008000]
     270            RenderMathMLOperator {mo} at (15,0) size 20x7
     271              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x7
    272272                RenderBlock (anonymous) at (0,0) size 12x7
    273273                  RenderText at (0,-36) size 12x80
     
    276276          text run at (444,0) width 4: " "
    277277        RenderMathMLMath {math} at (448,4) size 52x10 [padding: 0 1 0 1]
    278           RenderMathMLUnderOver {mover} at (1,0) size 57x10
    279             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
    280             RenderMathMLOperator {mo} at (0,0) size 57x8
    281               RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
     278          RenderMathMLUnderOver {mover} at (1,0) size 50x10
     279            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
     280            RenderMathMLOperator {mo} at (15,0) size 20x8
     281              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    282282                RenderBlock (anonymous) at (0,0) size 12x8
    283283                  RenderText at (0,-36) size 12x80
     
    286286          text run at (500,0) width 4: " "
    287287        RenderMathMLMath {math} at (504,4) size 52x10 [padding: 0 1 0 1]
    288           RenderMathMLUnderOver {mover} at (1,0) size 57x10
    289             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
    290             RenderMathMLOperator {mo} at (0,0) size 57x8
    291               RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
     288          RenderMathMLUnderOver {mover} at (1,0) size 50x10
     289            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
     290            RenderMathMLOperator {mo} at (15,0) size 20x8
     291              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    292292                RenderBlock (anonymous) at (0,0) size 12x8
    293293                  RenderText at (0,-36) size 12x80
     
    296296          text run at (556,0) width 4: " "
    297297        RenderMathMLMath {math} at (560,4) size 52x10 [padding: 0 1 0 1]
    298           RenderMathMLUnderOver {mover} at (1,0) size 57x10
    299             RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
    300             RenderMathMLOperator {mo} at (0,0) size 57x8
    301               RenderMathMLBlock (anonymous, flex) at (3,0) size 51x8
     298          RenderMathMLUnderOver {mover} at (1,0) size 50x10
     299            RenderMathMLSpace {mspace} at (0,8) size 50x2 [bgcolor=#008000]
     300            RenderMathMLOperator {mo} at (15,0) size 20x8
     301              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    302302                RenderBlock (anonymous) at (0,0) size 12x8
    303303                  RenderText at (0,-36) size 12x80
     
    306306          text run at (612,0) width 4: " "
    307307        RenderMathMLMath {math} at (616,2) size 52x12 [padding: 0 1 0 1]
    308           RenderMathMLUnderOver {mover} at (1,0) size 57x12
    309             RenderMathMLSpace {mspace} at (3,10) size 51x2 [bgcolor=#008000]
    310             RenderMathMLOperator {mo} at (0,0) size 57x10
    311               RenderMathMLBlock (anonymous, flex) at (3,0) size 51x10
     308          RenderMathMLUnderOver {mover} at (1,0) size 50x12
     309            RenderMathMLSpace {mspace} at (0,10) size 50x2 [bgcolor=#008000]
     310            RenderMathMLOperator {mo} at (15,0) size 20x10
     311              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x10
    312312                RenderBlock (anonymous) at (0,0) size 12x10
    313313                  RenderText at (0,-35) size 12x80
     
    316316          text run at (668,0) width 4: " "
    317317        RenderMathMLMath {math} at (672,2) size 52x12 [padding: 0 1 0 1]
    318           RenderMathMLUnderOver {mover} at (1,0) size 57x12
    319             RenderMathMLSpace {mspace} at (3,10) size 51x2 [bgcolor=#008000]
    320             RenderMathMLOperator {mo} at (0,0) size 57x10
    321               RenderMathMLBlock (anonymous, flex) at (3,0) size 51x10
     318          RenderMathMLUnderOver {mover} at (1,0) size 50x12
     319            RenderMathMLSpace {mspace} at (0,10) size 50x2 [bgcolor=#008000]
     320            RenderMathMLOperator {mo} at (15,0) size 20x10
     321              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x10
    322322                RenderBlock (anonymous) at (0,0) size 12x10
    323323                  RenderText at (0,-35) size 12x80
     
    328328          RenderMathMLUnderOver {mover} at (1,0) size 50x12
    329329            RenderMathMLSpace {mspace} at (0,10) size 50x2 [bgcolor=#008000]
    330             RenderMathMLOperator {mo} at (0,0) size 50x10
    331               RenderMathMLBlock (anonymous, flex) at (0,0) size 50x10
     330            RenderMathMLOperator {mo} at (23,0) size 4x10
     331              RenderMathMLBlock (anonymous, flex) at (0,0) size 4x10
    332332                RenderBlock (anonymous) at (0,0) size 4x10
    333333                  RenderText at (0,-34) size 4x80
     
    337337          RenderMathMLUnderOver {mover} at (1,0) size 50x7
    338338            RenderMathMLSpace {mspace} at (0,5) size 50x2 [bgcolor=#008000]
    339             RenderMathMLOperator {mo} at (0,0) size 50x5
    340               RenderMathMLBlock (anonymous, flex) at (0,0) size 50x4
     339            RenderMathMLOperator {mo} at (23,0) size 4x5
     340              RenderMathMLBlock (anonymous, flex) at (0,0) size 4x4
    341341                RenderBlock (anonymous) at (0,0) size 4x4
    342342                  RenderText at (0,-43) size 4x80
     
    347347          RenderMathMLUnderOver {mover} at (1,0) size 50x12
    348348            RenderMathMLSpace {mspace} at (0,10) size 50x2 [bgcolor=#008000]
    349             RenderMathMLOperator {mo} at (0,0) size 50x10
    350               RenderMathMLBlock (anonymous, flex) at (0,0) size 50x10
     349            RenderMathMLOperator {mo} at (22,0) size 6x10
     350              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x10
    351351                RenderBlock (anonymous) at (0,0) size 6x10
    352352                  RenderText at (0,-34) size 6x80
     
    357357          RenderMathMLUnderOver {mover} at (1,0) size 50x7
    358358            RenderMathMLSpace {mspace} at (0,5) size 50x2 [bgcolor=#008000]
    359             RenderMathMLOperator {mo} at (0,0) size 50x5
    360               RenderMathMLBlock (anonymous, flex) at (0,0) size 50x4
     359            RenderMathMLOperator {mo} at (22,0) size 6x5
     360              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x4
    361361                RenderBlock (anonymous) at (0,0) size 6x4
    362362                  RenderText at (0,-43) size 6x80
     
    367367          RenderMathMLUnderOver {mover} at (1,0) size 50x13
    368368            RenderMathMLSpace {mspace} at (0,11) size 50x2 [bgcolor=#008000]
    369             RenderMathMLOperator {mo} at (0,0) size 50x11
    370               RenderMathMLBlock (anonymous, flex) at (0,0) size 50x11
     369            RenderMathMLOperator {mo} at (22,0) size 6x11
     370              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x11
    371371                RenderBlock (anonymous) at (0,0) size 6x11
    372372                  RenderText at (0,-33) size 6x80
     
    377377          RenderMathMLUnderOver {mover} at (1,0) size 50x8
    378378            RenderMathMLSpace {mspace} at (0,6) size 50x2 [bgcolor=#008000]
    379             RenderMathMLOperator {mo} at (0,0) size 50x6
    380               RenderMathMLBlock (anonymous, flex) at (0,0) size 50x5
     379            RenderMathMLOperator {mo} at (22,0) size 6x6
     380              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x5
    381381                RenderBlock (anonymous) at (0,0) size 6x5
    382382                  RenderText at (0,-43) size 6x80
     
    385385      RenderBlock {P} at (0,83) size 784x51
    386386        RenderMathMLMath {math} at (0,4) size 102x10 [padding: 0 1 0 1]
    387           RenderMathMLUnderOver {mover} at (1,0) size 107x10
    388             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
    389             RenderMathMLOperator {mo} at (0,0) size 107x8
    390               RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
     387          RenderMathMLUnderOver {mover} at (1,0) size 100x10
     388            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
     389            RenderMathMLOperator {mo} at (40,0) size 20x8
     390              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    391391                RenderBlock (anonymous) at (0,0) size 12x8
    392392                  RenderText at (0,-36) size 12x80
     
    395395          text run at (102,0) width 4: " "
    396396        RenderMathMLMath {math} at (106,4) size 102x10 [padding: 0 1 0 1]
    397           RenderMathMLUnderOver {mover} at (1,0) size 107x10
    398             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
    399             RenderMathMLOperator {mo} at (0,0) size 107x8
    400               RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
     397          RenderMathMLUnderOver {mover} at (1,0) size 100x10
     398            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
     399            RenderMathMLOperator {mo} at (40,0) size 20x8
     400              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    401401                RenderBlock (anonymous) at (0,0) size 12x8
    402402                  RenderText at (0,-36) size 12x80
     
    405405          text run at (208,0) width 4: " "
    406406        RenderMathMLMath {math} at (212,4) size 102x10 [padding: 0 1 0 1]
    407           RenderMathMLUnderOver {mover} at (1,0) size 107x10
    408             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
    409             RenderMathMLOperator {mo} at (0,0) size 107x8
    410               RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
     407          RenderMathMLUnderOver {mover} at (1,0) size 100x10
     408            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
     409            RenderMathMLOperator {mo} at (40,0) size 20x8
     410              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    411411                RenderBlock (anonymous) at (0,0) size 12x8
    412412                  RenderText at (0,-36) size 12x80
     
    415415          text run at (314,0) width 4: " "
    416416        RenderMathMLMath {math} at (318,4) size 102x10 [padding: 0 1 0 1]
    417           RenderMathMLUnderOver {mover} at (1,0) size 107x10
    418             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
    419             RenderMathMLOperator {mo} at (0,0) size 107x8
    420               RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
     417          RenderMathMLUnderOver {mover} at (1,0) size 100x10
     418            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
     419            RenderMathMLOperator {mo} at (40,0) size 20x8
     420              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    421421                RenderBlock (anonymous) at (0,0) size 12x8
    422422                  RenderText at (0,-36) size 12x80
     
    425425          text run at (420,0) width 4: " "
    426426        RenderMathMLMath {math} at (424,4) size 102x10 [padding: 0 1 0 1]
    427           RenderMathMLUnderOver {mover} at (1,0) size 107x10
    428             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
    429             RenderMathMLOperator {mo} at (0,0) size 107x8
    430               RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
     427          RenderMathMLUnderOver {mover} at (1,0) size 100x10
     428            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
     429            RenderMathMLOperator {mo} at (40,0) size 20x8
     430              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    431431                RenderBlock (anonymous) at (0,0) size 12x8
    432432                  RenderText at (0,-36) size 12x80
     
    435435          text run at (526,0) width 4: " "
    436436        RenderMathMLMath {math} at (530,5) size 102x9 [padding: 0 1 0 1]
    437           RenderMathMLUnderOver {mover} at (1,0) size 107x9
    438             RenderMathMLSpace {mspace} at (3,7) size 101x2 [bgcolor=#FF0000]
    439             RenderMathMLOperator {mo} at (0,0) size 107x7
    440               RenderMathMLBlock (anonymous, flex) at (3,0) size 101x7
     437          RenderMathMLUnderOver {mover} at (1,0) size 100x9
     438            RenderMathMLSpace {mspace} at (0,7) size 100x2 [bgcolor=#FF0000]
     439            RenderMathMLOperator {mo} at (40,0) size 20x7
     440              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x7
    441441                RenderBlock (anonymous) at (0,0) size 12x7
    442442                  RenderText at (0,-36) size 12x80
     
    445445          text run at (632,0) width 4: " "
    446446        RenderMathMLMath {math} at (636,7) size 102x7 [padding: 0 1 0 1]
    447           RenderMathMLUnderOver {mover} at (1,0) size 107x7
    448             RenderMathMLSpace {mspace} at (3,5) size 101x2 [bgcolor=#FF0000]
    449             RenderMathMLOperator {mo} at (0,0) size 107x5
    450               RenderMathMLBlock (anonymous, flex) at (3,0) size 101x5
     447          RenderMathMLUnderOver {mover} at (1,0) size 100x7
     448            RenderMathMLSpace {mspace} at (0,5) size 100x2 [bgcolor=#FF0000]
     449            RenderMathMLOperator {mo} at (40,0) size 20x5
     450              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x5
    451451                RenderBlock (anonymous) at (0,0) size 12x5
    452452                  RenderText at (0,-39) size 12x80
     
    454454        RenderText {#text} at (0,0) size 0x0
    455455        RenderMathMLMath {math} at (0,22) size 102x9 [padding: 0 1 0 1]
    456           RenderMathMLUnderOver {mover} at (1,0) size 107x9
    457             RenderMathMLSpace {mspace} at (3,7) size 101x2 [bgcolor=#FF0000]
    458             RenderMathMLOperator {mo} at (0,0) size 107x7
    459               RenderMathMLBlock (anonymous, flex) at (3,0) size 101x7
     456          RenderMathMLUnderOver {mover} at (1,0) size 100x9
     457            RenderMathMLSpace {mspace} at (0,7) size 100x2 [bgcolor=#FF0000]
     458            RenderMathMLOperator {mo} at (40,0) size 20x7
     459              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x7
    460460                RenderBlock (anonymous) at (0,0) size 12x7
    461461                  RenderText at (0,-36) size 12x80
     
    464464          text run at (102,17) width 4: " "
    465465        RenderMathMLMath {math} at (106,21) size 102x10 [padding: 0 1 0 1]
    466           RenderMathMLUnderOver {mover} at (1,0) size 107x10
    467             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
    468             RenderMathMLOperator {mo} at (0,0) size 107x8
    469               RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
     466          RenderMathMLUnderOver {mover} at (1,0) size 100x10
     467            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
     468            RenderMathMLOperator {mo} at (40,0) size 20x8
     469              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    470470                RenderBlock (anonymous) at (0,0) size 12x8
    471471                  RenderText at (0,-36) size 12x80
     
    474474          text run at (208,17) width 4: " "
    475475        RenderMathMLMath {math} at (212,21) size 102x10 [padding: 0 1 0 1]
    476           RenderMathMLUnderOver {mover} at (1,0) size 107x10
    477             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
    478             RenderMathMLOperator {mo} at (0,0) size 107x8
    479               RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
     476          RenderMathMLUnderOver {mover} at (1,0) size 100x10
     477            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
     478            RenderMathMLOperator {mo} at (40,0) size 20x8
     479              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    480480                RenderBlock (anonymous) at (0,0) size 12x8
    481481                  RenderText at (0,-36) size 12x80
     
    484484          text run at (314,17) width 4: " "
    485485        RenderMathMLMath {math} at (318,21) size 102x10 [padding: 0 1 0 1]
    486           RenderMathMLUnderOver {mover} at (1,0) size 107x10
    487             RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
    488             RenderMathMLOperator {mo} at (0,0) size 107x8
    489               RenderMathMLBlock (anonymous, flex) at (3,0) size 101x8
     486          RenderMathMLUnderOver {mover} at (1,0) size 100x10
     487            RenderMathMLSpace {mspace} at (0,8) size 100x2 [bgcolor=#FF0000]
     488            RenderMathMLOperator {mo} at (40,0) size 20x8
     489              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x8
    490490                RenderBlock (anonymous) at (0,0) size 12x8
    491491                  RenderText at (0,-36) size 12x80
     
    494494          text run at (420,17) width 4: " "
    495495        RenderMathMLMath {math} at (424,19) size 102x12 [padding: 0 1 0 1]
    496           RenderMathMLUnderOver {mover} at (1,0) size 107x12
    497             RenderMathMLSpace {mspace} at (3,10) size 101x2 [bgcolor=#FF0000]
    498             RenderMathMLOperator {mo} at (0,0) size 107x10
    499               RenderMathMLBlock (anonymous, flex) at (3,0) size 101x10
     496          RenderMathMLUnderOver {mover} at (1,0) size 100x12
     497            RenderMathMLSpace {mspace} at (0,10) size 100x2 [bgcolor=#FF0000]
     498            RenderMathMLOperator {mo} at (40,0) size 20x10
     499              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x10
    500500                RenderBlock (anonymous) at (0,0) size 12x10
    501501                  RenderText at (0,-35) size 12x80
     
    504504          text run at (526,17) width 4: " "
    505505        RenderMathMLMath {math} at (530,19) size 102x12 [padding: 0 1 0 1]
    506           RenderMathMLUnderOver {mover} at (1,0) size 107x12
    507             RenderMathMLSpace {mspace} at (3,10) size 101x2 [bgcolor=#FF0000]
    508             RenderMathMLOperator {mo} at (0,0) size 107x10
    509               RenderMathMLBlock (anonymous, flex) at (3,0) size 101x10
     506          RenderMathMLUnderOver {mover} at (1,0) size 100x12
     507            RenderMathMLSpace {mspace} at (0,10) size 100x2 [bgcolor=#FF0000]
     508            RenderMathMLOperator {mo} at (40,0) size 20x10
     509              RenderMathMLBlock (anonymous, flex) at (3,0) size 13x10
    510510                RenderBlock (anonymous) at (0,0) size 12x10
    511511                  RenderText at (0,-35) size 12x80
     
    516516          RenderMathMLUnderOver {mover} at (1,0) size 100x12
    517517            RenderMathMLSpace {mspace} at (0,10) size 100x2 [bgcolor=#FF0000]
    518             RenderMathMLOperator {mo} at (0,0) size 100x10
    519               RenderMathMLBlock (anonymous, flex) at (0,0) size 100x10
     518            RenderMathMLOperator {mo} at (48,0) size 4x10
     519              RenderMathMLBlock (anonymous, flex) at (0,0) size 4x10
    520520                RenderBlock (anonymous) at (0,0) size 4x10
    521521                  RenderText at (0,-34) size 4x80
     
    525525          RenderMathMLUnderOver {mover} at (1,0) size 100x7
    526526            RenderMathMLSpace {mspace} at (0,5) size 100x2 [bgcolor=#FF0000]
    527             RenderMathMLOperator {mo} at (0,0) size 100x5
    528               RenderMathMLBlock (anonymous, flex) at (0,0) size 100x4
     527            RenderMathMLOperator {mo} at (48,0) size 4x5
     528              RenderMathMLBlock (anonymous, flex) at (0,0) size 4x4
    529529                RenderBlock (anonymous) at (0,0) size 4x4
    530530                  RenderText at (0,-43) size 4x80
     
    535535          RenderMathMLUnderOver {mover} at (1,0) size 100x12
    536536            RenderMathMLSpace {mspace} at (0,10) size 100x2 [bgcolor=#FF0000]
    537             RenderMathMLOperator {mo} at (0,0) size 100x10
    538               RenderMathMLBlock (anonymous, flex) at (0,0) size 100x10
     537            RenderMathMLOperator {mo} at (47,0) size 6x10
     538              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x10
    539539                RenderBlock (anonymous) at (0,0) size 6x10
    540540                  RenderText at (0,-34) size 6x80
     
    545545          RenderMathMLUnderOver {mover} at (1,0) size 100x7
    546546            RenderMathMLSpace {mspace} at (0,5) size 100x2 [bgcolor=#FF0000]
    547             RenderMathMLOperator {mo} at (0,0) size 100x5
    548               RenderMathMLBlock (anonymous, flex) at (0,0) size 100x4
     547            RenderMathMLOperator {mo} at (47,0) size 6x5
     548              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x4
    549549                RenderBlock (anonymous) at (0,0) size 6x4
    550550                  RenderText at (0,-43) size 6x80
     
    555555          RenderMathMLUnderOver {mover} at (1,0) size 100x13
    556556            RenderMathMLSpace {mspace} at (0,11) size 100x2 [bgcolor=#FF0000]
    557             RenderMathMLOperator {mo} at (0,0) size 100x11
    558               RenderMathMLBlock (anonymous, flex) at (0,0) size 100x11
     557            RenderMathMLOperator {mo} at (47,0) size 6x11
     558              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x11
    559559                RenderBlock (anonymous) at (0,0) size 6x11
    560560                  RenderText at (0,-33) size 6x80
     
    565565          RenderMathMLUnderOver {mover} at (1,0) size 100x8
    566566            RenderMathMLSpace {mspace} at (0,6) size 100x2 [bgcolor=#FF0000]
    567             RenderMathMLOperator {mo} at (0,0) size 100x6
    568               RenderMathMLBlock (anonymous, flex) at (0,0) size 100x5
     567            RenderMathMLOperator {mo} at (47,0) size 6x6
     568              RenderMathMLBlock (anonymous, flex) at (0,0) size 6x5
    569569                RenderBlock (anonymous) at (0,0) size 6x5
    570570                  RenderText at (0,-43) size 6x80
  • trunk/LayoutTests/platform/gtk/mathml/opentype/horizontal-munderover-expected.txt

    r170232 r202156  
    88          RenderMathMLRow {mstyle} at (1,0) size 48x16
    99            RenderMathMLUnderOver {mover} at (0,0) size 48x8
    10               RenderMathMLOperator {mo} at (0,2) size 48x6
    11                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
     10              RenderMathMLOperator {mo} at (20,2) size 8x6
     11                RenderMathMLBlock (anonymous, flex) at (0,0) size 8x6
    1212                  RenderBlock (anonymous) at (0,0) size 8x6
    1313                    RenderText at (0,-44) size 8x106
     
    2020            RenderMathMLUnderOver {mover} at (0,0) size 64x13
    2121              RenderMathMLSpace {mspace} at (0,11) size 64x2 [bgcolor=#FF0000]
    22               RenderMathMLOperator {mo} at (0,0) size 64x11
    23                 RenderMathMLBlock (anonymous, flex) at (0,0) size 64x11
     22              RenderMathMLOperator {mo} at (29,0) size 6x11
     23                RenderMathMLBlock (anonymous, flex) at (0,0) size 6x11
    2424                  RenderBlock (anonymous) at (0,0) size 6x11
    2525                    RenderText at (0,-33) size 6x80
     
    3030          RenderMathMLRow {mstyle} at (1,0) size 48x14
    3131            RenderMathMLUnderOver {munder} at (0,0) size 48x8
    32               RenderMathMLOperator {mo} at (0,0) size 48x6
    33                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
     32              RenderMathMLOperator {mo} at (20,0) size 8x6
     33                RenderMathMLBlock (anonymous, flex) at (0,0) size 8x6
    3434                  RenderBlock (anonymous) at (0,0) size 8x6
    3535                    RenderText at (0,-44) size 8x106
     
    4242            RenderMathMLUnderOver {munderover} at (0,0) size 64x24
    4343              RenderMathMLSpace {mspace} at (0,11) size 64x2 [bgcolor=#FF0000]
    44               RenderMathMLOperator {mo} at (0,13) size 64x11
    45                 RenderMathMLBlock (anonymous, flex) at (0,0) size 64x11
     44              RenderMathMLOperator {mo} at (29,13) size 6x11
     45                RenderMathMLBlock (anonymous, flex) at (0,0) size 6x11
    4646                  RenderBlock (anonymous) at (0,0) size 6x11
    4747                    RenderText at (0,-33) size 6x80
    4848                      text run at (0,-33) width 6: "\x{23DE}"
    49               RenderMathMLOperator {mo} at (0,0) size 64x11
    50                 RenderMathMLBlock (anonymous, flex) at (0,0) size 64x11
     49              RenderMathMLOperator {mo} at (29,0) size 6x11
     50                RenderMathMLBlock (anonymous, flex) at (0,0) size 6x11
    5151                  RenderBlock (anonymous) at (0,0) size 6x11
    5252                    RenderText at (0,-33) size 6x80
     
    5757          RenderMathMLRow {mstyle} at (1,0) size 48x20
    5858            RenderMathMLUnderOver {munderover} at (0,0) size 48x14
    59               RenderMathMLOperator {mo} at (0,6) size 48x6
    60                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
     59              RenderMathMLOperator {mo} at (20,6) size 8x6
     60                RenderMathMLBlock (anonymous, flex) at (0,0) size 8x6
    6161                  RenderBlock (anonymous) at (0,0) size 8x6
    6262                    RenderText at (0,-44) size 8x106
    6363                      text run at (0,-44) width 8: "\x{23DE}"
    6464              RenderMathMLSpace {mspace} at (0,12) size 48x2 [bgcolor=#FF0000]
    65               RenderMathMLOperator {mo} at (0,0) size 48x6
    66                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
     65              RenderMathMLOperator {mo} at (21,0) size 6x6
     66                RenderMathMLBlock (anonymous, flex) at (0,0) size 6x6
    6767                  RenderBlock (anonymous) at (0,0) size 6x6
    6868                    RenderText at (0,-33) size 6x80
     
    7373          RenderMathMLRow {mstyle} at (1,0) size 48x16
    7474            RenderMathMLUnderOver {munderover} at (0,0) size 48x14
    75               RenderMathMLOperator {mo} at (0,2) size 48x6
    76                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
     75              RenderMathMLOperator {mo} at (20,2) size 8x6
     76                RenderMathMLBlock (anonymous, flex) at (0,0) size 8x6
    7777                  RenderBlock (anonymous) at (0,0) size 8x6
    7878                    RenderText at (0,-44) size 8x106
    7979                      text run at (0,-44) width 8: "\x{23DE}"
    80               RenderMathMLOperator {mo} at (0,8) size 48x6
    81                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
     80              RenderMathMLOperator {mo} at (21,8) size 6x6
     81                RenderMathMLBlock (anonymous, flex) at (0,0) size 6x6
    8282                  RenderBlock (anonymous) at (0,0) size 6x6
    8383                    RenderText at (0,-33) size 6x80
     
    9090            RenderMathMLUnderOver {munder} at (0,0) size 48x14
    9191              RenderMathMLUnderOver {mover} at (0,0) size 48x8
    92                 RenderMathMLOperator {mo} at (0,2) size 48x6
    93                   RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
     92                RenderMathMLOperator {mo} at (20,2) size 8x6
     93                  RenderMathMLBlock (anonymous, flex) at (0,0) size 8x6
    9494                    RenderBlock (anonymous) at (0,0) size 8x6
    9595                      RenderText at (0,-44) size 8x106
    9696                        text run at (0,-44) width 8: "\x{23DE}"
    9797                RenderMathMLSpace {mspace} at (0,0) size 48x2 [bgcolor=#FF0000]
    98               RenderMathMLOperator {mo} at (0,8) size 48x6
    99                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x6
     98              RenderMathMLOperator {mo} at (21,8) size 6x6
     99                RenderMathMLBlock (anonymous, flex) at (0,0) size 6x6
    100100                  RenderBlock (anonymous) at (0,0) size 6x6
    101101                    RenderText at (0,-33) size 6x80
  • trunk/LayoutTests/platform/gtk/mathml/opentype/large-operators-expected.txt

    r170232 r202156  
    55    RenderBody {BODY} at (8,8) size 784x36
    66      RenderMathMLMath {math} at (0,0) size 784x36 [padding: 0 1 0 1]
    7         RenderMathMLOperator {mo} at (205,6) size 27x24
     7        RenderMathMLOperator {mo} at (199,6) size 27x24
    88          RenderMathMLBlock (anonymous, flex) at (0,0) size 24x16
    99            RenderBlock (anonymous) at (0,0) size 17x16
    1010              RenderText at (0,-45) size 17x106
    1111                text run at (0,-45) width 17: "\x{2211}"
    12         RenderMathMLOperator {mo} at (231,0) size 18x36
     12        RenderMathMLOperator {mo} at (225,0) size 18x36
    1313          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
    1414            RenderBlock (anonymous) at (0,0) size 11x18
    1515              RenderText at (0,-44) size 11x106
    1616                text run at (0,-44) width 11: "\x{222B}"
    17         RenderMathMLOperator {mo} at (248,0) size 23x36
    18           RenderMathMLBlock (anonymous, flex) at (0,0) size 22x18
     17        RenderMathMLOperator {mo} at (242,0) size 24x36
     18          RenderMathMLBlock (anonymous, flex) at (0,0) size 23x18
    1919            RenderBlock (anonymous) at (0,0) size 17x18
    2020              RenderText at (0,-44) size 17x106
    2121                text run at (0,-44) width 17: "\x{222C}"
    22         RenderMathMLOperator {mo} at (270,0) size 31x36
     22        RenderMathMLOperator {mo} at (265,0) size 31x36
    2323          RenderMathMLBlock (anonymous, flex) at (0,0) size 29x18
    2424            RenderBlock (anonymous) at (0,0) size 22x18
    2525              RenderText at (0,-44) size 22x106
    2626                text run at (0,-44) width 22: "\x{222D}"
    27         RenderMathMLOperator {mo} at (300,0) size 38x36
     27        RenderMathMLOperator {mo} at (295,0) size 38x36
    2828          RenderMathMLBlock (anonymous, flex) at (0,0) size 36x18
    2929            RenderBlock (anonymous) at (0,0) size 28x18
    3030              RenderText at (0,-44) size 28x106
    3131                text run at (0,-44) width 28: "\x{2A0C}"
    32         RenderMathMLOperator {mo} at (337,7) size 26x22
    33           RenderMathMLBlock (anonymous, flex) at (0,0) size 23x16
     32        RenderMathMLOperator {mo} at (332,7) size 28x22
     33          RenderMathMLBlock (anonymous, flex) at (0,0) size 25x16
    3434            RenderBlock (anonymous) at (0,0) size 18x16
    3535              RenderText at (0,-45) size 18x106
    3636                text run at (0,-45) width 18: "\x{2A01}"
    37         RenderMathMLOperator {mo} at (362,0) size 18x36
     37        RenderMathMLOperator {mo} at (359,0) size 18x36
    3838          RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
    3939            RenderBlock (anonymous) at (0,0) size 11x18
    4040              RenderText at (0,-44) size 11x106
    4141                text run at (0,-44) width 11: "\x{222E}"
    42         RenderMathMLOperator {mo} at (379,0) size 24x36
    43           RenderMathMLBlock (anonymous, flex) at (0,0) size 22x18
     42        RenderMathMLOperator {mo} at (376,0) size 25x36
     43          RenderMathMLBlock (anonymous, flex) at (0,0) size 23x18
    4444            RenderBlock (anonymous) at (0,0) size 17x18
    4545              RenderText at (0,-44) size 17x106
    4646                text run at (0,-44) width 17: "\x{222F}"
    47         RenderMathMLOperator {mo} at (402,0) size 30x36
     47        RenderMathMLOperator {mo} at (400,0) size 30x36
    4848          RenderMathMLBlock (anonymous, flex) at (0,0) size 29x18
    4949            RenderBlock (anonymous) at (0,0) size 22x18
    5050              RenderText at (0,-44) size 22x106
    5151                text run at (0,-44) width 22: "\x{2230}"
    52         RenderMathMLOperator {mo} at (431,7) size 20x23
    53           RenderMathMLBlock (anonymous, flex) at (0,0) size 17x17
     52        RenderMathMLOperator {mo} at (429,7) size 22x23
     53          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x17
    5454            RenderBlock (anonymous) at (0,0) size 13x17
    5555              RenderText at (0,-45) size 13x106
    5656                text run at (0,-45) width 13: "\x{22C3}"
    57         RenderMathMLOperator {mo} at (450,6) size 21x24
    58           RenderMathMLBlock (anonymous, flex) at (0,0) size 18x18
     57        RenderMathMLOperator {mo} at (450,6) size 22x24
     58          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x18
    5959            RenderBlock (anonymous) at (0,0) size 13x18
    6060              RenderText at (0,-44) size 13x106
    6161                text run at (0,-44) width 13: "\x{22C0}"
    62         RenderMathMLOperator {mo} at (470,6) size 20x24
    63           RenderMathMLBlock (anonymous, flex) at (0,0) size 18x18
     62        RenderMathMLOperator {mo} at (471,6) size 21x24
     63          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x18
    6464            RenderBlock (anonymous) at (0,0) size 13x18
    6565              RenderText at (0,-44) size 13x106
    6666                text run at (0,-44) width 13: "\x{22C1}"
    67         RenderMathMLOperator {mo} at (489,6) size 20x23
    68           RenderMathMLBlock (anonymous, flex) at (0,0) size 17x17
     67        RenderMathMLOperator {mo} at (491,6) size 22x23
     68          RenderMathMLBlock (anonymous, flex) at (0,0) size 19x17
    6969            RenderBlock (anonymous) at (0,0) size 13x17
    7070              RenderText at (0,-44) size 13x106
    7171                text run at (0,-44) width 13: "\x{22C2}"
    72         RenderMathMLOperator {mo} at (508,7) size 26x22
    73           RenderMathMLBlock (anonymous, flex) at (0,0) size 23x16
     72        RenderMathMLOperator {mo} at (512,7) size 28x22
     73          RenderMathMLBlock (anonymous, flex) at (0,0) size 25x16
    7474            RenderBlock (anonymous) at (0,0) size 18x16
    7575              RenderText at (0,-45) size 18x106
    7676                text run at (0,-45) width 18: "\x{2A02}"
    77         RenderMathMLOperator {mo} at (533,6) size 23x24
     77        RenderMathMLOperator {mo} at (539,6) size 23x24
    7878          RenderMathMLBlock (anonymous, flex) at (0,0) size 21x16
    7979            RenderBlock (anonymous) at (0,0) size 15x16
    8080              RenderText at (0,-45) size 15x106
    8181                text run at (0,-45) width 15: "\x{220F}"
    82         RenderMathMLOperator {mo} at (555,6) size 24x24
     82        RenderMathMLOperator {mo} at (561,6) size 24x24
    8383          RenderMathMLBlock (anonymous, flex) at (0,0) size 21x16
    8484            RenderBlock (anonymous) at (0,0) size 15x16
  • trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-expected.txt

    r169305 r202156  
    4141        RenderText {#text} at (0,0) size 0x0
    4242      RenderBlock {P} at (0,219) size 784x96
    43         RenderMathMLMath {math} at (0,0) size 97x93 [padding: 0 1 0 1]
    44           RenderMathMLRow {mrow} at (1,0) size 95x93
    45             RenderMathMLOperator {mo} at (0,0) size 95x93
    46               RenderMathMLBlock (anonymous, flex) at (0,0) size 94x12
     43        RenderMathMLMath {math} at (0,0) size 96x93 [padding: 0 1 0 1]
     44          RenderMathMLRow {mrow} at (1,0) size 94x93
     45            RenderMathMLOperator {mo} at (0,0) size 94x93
     46              RenderMathMLBlock (anonymous, flex) at (0,0) size 93x12
    4747                RenderBlock (anonymous) at (0,0) size 10x12
    4848                  RenderText at (0,6) size 10x0
  • trunk/LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt

    r199293 r202156  
    66      RenderBlock {P} at (0,0) size 784x25
    77        RenderMathMLMath {math} at (0,2) size 10x23 [padding: 0 1 0 1]
    8           RenderMathMLRow {mstyle} at (1,0) size 16x23
    9             RenderMathMLUnderOver {mover} at (0,0) size 16x23
    10               RenderMathMLOperator {mo} at (0,1) size 16x22
    11                 RenderMathMLBlock (anonymous, flex) at (2,0) size 11x4
     8          RenderMathMLRow {mstyle} at (1,0) size 8x23
     9            RenderMathMLUnderOver {mover} at (0,0) size 8x23
     10              RenderMathMLOperator {mo} at (0,1) size 8x22
     11                RenderMathMLBlock (anonymous, flex) at (2,0) size 2x4
    1212                  RenderBlock (anonymous) at (0,0) size 1x4
    1313                    RenderText at (0,-3) size 1x0
    1414                      text run at (0,-3) width 1: "\x{219C}"
    15               RenderMathMLSpace {mspace} at (4,0) size 8x1
     15              RenderMathMLSpace {mspace} at (0,0) size 8x1
    1616        RenderText {#text} at (0,0) size 0x0
    1717      RenderBlock {P} at (0,41) size 784x25
    1818        RenderMathMLMath {math} at (0,2) size 17x23 [padding: 0 1 0 1]
    19           RenderMathMLRow {mstyle} at (1,0) size 26x23
    20             RenderMathMLUnderOver {mover} at (0,0) size 26x23
    21               RenderMathMLOperator {mo} at (0,1) size 26x22
    22                 RenderMathMLBlock (anonymous, flex) at (2,0) size 21x4
     19          RenderMathMLRow {mstyle} at (1,0) size 15x23
     20            RenderMathMLUnderOver {mover} at (0,0) size 15x23
     21              RenderMathMLOperator {mo} at (4,1) size 7x22
     22                RenderMathMLBlock (anonymous, flex) at (2,0) size 2x4
    2323                  RenderBlock (anonymous) at (0,0) size 1x4
    2424                    RenderText at (0,-3) size 1x0
    2525                      text run at (0,-3) width 1: "\x{219C}"
    26               RenderMathMLSpace {mspace} at (5,0) size 16x1
     26              RenderMathMLSpace {mspace} at (0,0) size 15x1
    2727        RenderText {#text} at (0,0) size 0x0
    2828      RenderBlock {P} at (0,82) size 784x43
    2929        RenderMathMLMath {math} at (0,0) size 152x43 [padding: 0 1 0 1]
    30           RenderMathMLRow {mstyle} at (1,0) size 156x43
    31             RenderMathMLUnderOver {mover} at (0,0) size 156x43
    32               RenderMathMLOperator {mo} at (0,1) size 156x42
    33                 RenderMathMLBlock (anonymous, flex) at (2,0) size 151x4
     30          RenderMathMLRow {mstyle} at (1,0) size 150x43
     31            RenderMathMLUnderOver {mover} at (0,0) size 150x43
     32              RenderMathMLOperator {mo} at (71,1) size 8x42
     33                RenderMathMLBlock (anonymous, flex) at (2,0) size 2x4
    3434                  RenderBlock (anonymous) at (0,0) size 1x4
    3535                    RenderText at (0,-3) size 1x0
    3636                      text run at (0,-3) width 1: "\x{219C}"
    37               RenderMathMLSpace {mspace} at (2,0) size 151x1
     37              RenderMathMLSpace {mspace} at (0,0) size 150x1
    3838        RenderText {#text} at (0,0) size 0x0
  • trunk/LayoutTests/platform/gtk/mathml/opentype/vertical-expected.txt

    r170232 r202156  
    8383          RenderMathMLSpace {mspace} at (192,4) size 0x8
    8484        RenderText {#text} at (0,0) size 0x0
    85       RenderBlock {P} at (0,34) size 784x32
    86         RenderMathMLMath {math} at (0,3) size 194x30 [padding: 0 1 0 1]
     85      RenderBlock {P} at (0,34) size 784x30
     86        RenderMathMLMath {math} at (0,0) size 194x30 [padding: 0 1 0 1]
    8787          RenderMathMLOperator {mo} at (1,0) size 11x30
    8888            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
     
    115115                RenderText at (0,-45) size 6x106
    116116                  text run at (0,-45) width 6: ")"
    117           RenderMathMLOperator {mo} at (79,2) size 8x28
     117          RenderMathMLOperator {mo} at (79,1) size 8x28
    118118            RenderMathMLBlock (anonymous, flex) at (1,0) size 5x16
    119119              RenderBlock (anonymous) at (0,0) size 4x16
     
    161161                  text run at (0,-45) width 6: "\x{27E9}"
    162162          RenderMathMLSpace {mspace} at (192,3) size 0x16
    163         RenderText {#text} at (193,8) size 5x17
    164           text run at (193,8) width 5: " "
    165         RenderMathMLMath {math} at (197,0) size 213x27 [padding: 0 1 0 1]
    166           RenderMathMLOperator {mo} at (1,0) size 17x22
     163        RenderText {#text} at (193,5) size 5x17
     164          text run at (193,5) width 5: " "
     165        RenderMathMLMath {math} at (197,3) size 213x23 [padding: 0 1 0 1]
     166          RenderMathMLOperator {mo} at (1,1) size 17x22
    167167            RenderMathMLBlock (anonymous, flex) at (4,0) size 9x15
    168168              RenderBlock (anonymous) at (0,0) size 8x15
    169169                RenderText at (0,-46) size 8x106
    170170                  text run at (0,-46) width 8: "\x{2191}"
    171           RenderMathMLOperator {mo} at (17,0) size 18x22
     171          RenderMathMLOperator {mo} at (17,1) size 18x22
    172172            RenderMathMLBlock (anonymous, flex) at (4,0) size 9x15
    173173              RenderBlock (anonymous) at (0,0) size 8x15
    174174                RenderText at (0,-45) size 8x106
    175175                  text run at (0,-45) width 8: "\x{2193}"
    176           RenderMathMLOperator {mo} at (34,9) size 19x18
     176          RenderMathMLOperator {mo} at (34,3) size 19x18
    177177            RenderMathMLBlock (anonymous, flex) at (4,0) size 10x18
    178178              RenderBlock (anonymous) at (0,0) size 8x18
    179179                RenderText at (0,-44) size 8x106
    180180                  text run at (0,-44) width 8: "\x{2195}"
    181           RenderMathMLOperator {mo} at (52,0) size 20x22
     181          RenderMathMLOperator {mo} at (52,1) size 20x22
    182182            RenderMathMLBlock (anonymous, flex) at (4,0) size 11x14
    183183              RenderBlock (anonymous) at (0,0) size 10x14
    184184                RenderText at (0,-46) size 10x106
    185185                  text run at (0,-46) width 10: "\x{21A5}"
    186           RenderMathMLOperator {mo} at (71,0) size 20x22
     186          RenderMathMLOperator {mo} at (71,1) size 20x22
    187187            RenderMathMLBlock (anonymous, flex) at (4,0) size 11x14
    188188              RenderBlock (anonymous) at (0,0) size 10x14
    189189                RenderText at (0,-46) size 10x106
    190190                  text run at (0,-46) width 10: "\x{21A7}"
    191           RenderMathMLOperator {mo} at (90,10) size 17x16
     191          RenderMathMLOperator {mo} at (90,4) size 17x16
    192192            RenderMathMLBlock (anonymous, flex) at (4,0) size 8x16
    193193              RenderBlock (anonymous) at (0,0) size 7x16
    194194                RenderText at (0,-45) size 7x106
    195195                  text run at (0,-45) width 7: "\x{21BE}"
    196           RenderMathMLOperator {mo} at (106,10) size 17x16
     196          RenderMathMLOperator {mo} at (106,4) size 17x16
    197197            RenderMathMLBlock (anonymous, flex) at (4,0) size 8x16
    198198              RenderBlock (anonymous) at (0,0) size 7x16
    199199                RenderText at (0,-45) size 7x106
    200200                  text run at (0,-45) width 7: "\x{21C2}"
    201           RenderMathMLOperator {mo} at (122,10) size 16x16
     201          RenderMathMLOperator {mo} at (122,4) size 16x16
    202202            RenderMathMLBlock (anonymous, flex) at (4,0) size 8x16
    203203              RenderBlock (anonymous) at (0,0) size 7x16
    204204                RenderText at (0,-45) size 7x106
    205205                  text run at (0,-45) width 7: "\x{21BF}"
    206           RenderMathMLOperator {mo} at (138,10) size 16x16
     206          RenderMathMLOperator {mo} at (138,4) size 16x16
    207207            RenderMathMLBlock (anonymous, flex) at (4,0) size 8x16
    208208              RenderBlock (anonymous) at (0,0) size 7x16
    209209                RenderText at (0,-45) size 7x106
    210210                  text run at (0,-45) width 7: "\x{21C3}"
    211           RenderMathMLOperator {mo} at (153,0) size 20x22
     211          RenderMathMLOperator {mo} at (153,1) size 20x22
    212212            RenderMathMLBlock (anonymous, flex) at (4,0) size 11x15
    213213              RenderBlock (anonymous) at (0,0) size 10x15
    214214                RenderText at (0,-46) size 10x106
    215215                  text run at (0,-46) width 10: "\x{21D1}"
    216           RenderMathMLOperator {mo} at (172,0) size 20x22
     216          RenderMathMLOperator {mo} at (172,1) size 20x22
    217217            RenderMathMLBlock (anonymous, flex) at (4,0) size 11x15
    218218              RenderBlock (anonymous) at (0,0) size 10x15
    219219                RenderText at (0,-45) size 10x106
    220220                  text run at (0,-45) width 10: "\x{21D3}"
    221           RenderMathMLOperator {mo} at (191,10) size 20x16
     221          RenderMathMLOperator {mo} at (191,4) size 20x16
    222222            RenderMathMLBlock (anonymous, flex) at (4,0) size 11x16
    223223              RenderBlock (anonymous) at (0,0) size 10x16
    224224                RenderText at (0,-45) size 10x106
    225225                  text run at (0,-45) width 10: "\x{21D5}"
    226           RenderMathMLSpace {mspace} at (210,6) size 0x16
     226          RenderMathMLSpace {mspace} at (210,0) size 0x16
    227227        RenderText {#text} at (0,0) size 0x0
    228       RenderBlock {P} at (0,82) size 784x47
     228      RenderBlock {P} at (0,80) size 784x48
    229229        RenderMathMLMath {math} at (0,0) size 194x48 [padding: 0 1 0 1]
    230230          RenderMathMLOperator {mo} at (1,0) size 11x48
     
    258258                RenderText at (0,-45) size 6x106
    259259                  text run at (0,-45) width 6: ")"
    260           RenderMathMLOperator {mo} at (79,4) size 8x42
     260          RenderMathMLOperator {mo} at (79,3) size 8x42
    261261            RenderMathMLBlock (anonymous, flex) at (1,0) size 5x16
    262262              RenderBlock (anonymous) at (0,0) size 4x16
     
    305305          RenderMathMLSpace {mspace} at (192,4) size 0x24
    306306        RenderText {#text} at (0,0) size 0x0
    307       RenderBlock {P} at (0,145) size 784x57
     307      RenderBlock {P} at (0,144) size 784x58
    308308        RenderMathMLMath {math} at (0,0) size 194x58 [padding: 0 1 0 1]
    309           RenderMathMLOperator {mo} at (1,0) size 11x57
     309          RenderMathMLOperator {mo} at (1,1) size 11x57
    310310            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    311311              RenderBlock (anonymous) at (0,0) size 4x16
    312312                RenderText at (0,-45) size 4x106
    313313                  text run at (0,-45) width 4: "["
    314           RenderMathMLOperator {mo} at (12,0) size 11x57
     314          RenderMathMLOperator {mo} at (12,1) size 11x57
    315315            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    316316              RenderBlock (anonymous) at (0,0) size 4x16
    317317                RenderText at (0,-45) size 4x106
    318318                  text run at (0,-45) width 4: "]"
    319           RenderMathMLOperator {mo} at (23,0) size 14x57
     319          RenderMathMLOperator {mo} at (23,1) size 14x57
    320320            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    321321              RenderBlock (anonymous) at (0,0) size 8x16
    322322                RenderText at (0,-45) size 8x106
    323323                  text run at (0,-45) width 8: "{"
    324           RenderMathMLOperator {mo} at (37,0) size 14x57
     324          RenderMathMLOperator {mo} at (37,1) size 14x57
    325325            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    326326              RenderBlock (anonymous) at (0,0) size 8x16
    327327                RenderText at (0,-45) size 8x106
    328328                  text run at (0,-45) width 8: "}"
    329           RenderMathMLOperator {mo} at (51,0) size 14x57
     329          RenderMathMLOperator {mo} at (51,1) size 14x57
    330330            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    331331              RenderBlock (anonymous) at (0,0) size 6x16
    332332                RenderText at (0,-45) size 6x106
    333333                  text run at (0,-45) width 6: "("
    334           RenderMathMLOperator {mo} at (65,0) size 14x57
     334          RenderMathMLOperator {mo} at (65,1) size 14x57
    335335            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    336336              RenderBlock (anonymous) at (0,0) size 6x16
     
    342342                RenderText at (0,-45) size 4x106
    343343                  text run at (0,-45) width 4: "|"
    344           RenderMathMLOperator {mo} at (86,0) size 12x57
     344          RenderMathMLOperator {mo} at (86,1) size 12x57
    345345            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    346346              RenderBlock (anonymous) at (0,0) size 7x16
    347347                RenderText at (0,-45) size 7x106
    348348                  text run at (0,-45) width 7: "\x{2308}"
    349           RenderMathMLOperator {mo} at (97,0) size 12x57
     349          RenderMathMLOperator {mo} at (97,1) size 12x57
    350350            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    351351              RenderBlock (anonymous) at (0,0) size 7x16
    352352                RenderText at (0,-45) size 7x106
    353353                  text run at (0,-45) width 7: "\x{2309}"
    354           RenderMathMLOperator {mo} at (108,0) size 12x57
     354          RenderMathMLOperator {mo} at (108,1) size 12x57
    355355            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    356356              RenderBlock (anonymous) at (0,0) size 7x16
    357357                RenderText at (0,-45) size 7x106
    358358                  text run at (0,-45) width 7: "\x{230A}"
    359           RenderMathMLOperator {mo} at (119,0) size 12x57
     359          RenderMathMLOperator {mo} at (119,1) size 12x57
    360360            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    361361              RenderBlock (anonymous) at (0,0) size 7x16
    362362                RenderText at (0,-45) size 7x106
    363363                  text run at (0,-45) width 7: "\x{230B}"
    364           RenderMathMLOperator {mo} at (130,0) size 17x57
     364          RenderMathMLOperator {mo} at (130,1) size 17x57
    365365            RenderMathMLBlock (anonymous, flex) at (0,0) size 16x16
    366366              RenderBlock (anonymous) at (0,0) size 7x16
    367367                RenderText at (0,-45) size 7x106
    368368                  text run at (0,-45) width 7: "\x{27E6}"
    369           RenderMathMLOperator {mo} at (146,0) size 17x57
     369          RenderMathMLOperator {mo} at (146,1) size 17x57
    370370            RenderMathMLBlock (anonymous, flex) at (0,0) size 16x16
    371371              RenderBlock (anonymous) at (0,0) size 7x16
    372372                RenderText at (0,-45) size 7x106
    373373                  text run at (0,-45) width 7: "\x{27E7}"
    374           RenderMathMLOperator {mo} at (162,6) size 16x48
     374          RenderMathMLOperator {mo} at (162,5) size 16x48
    375375            RenderMathMLBlock (anonymous, flex) at (0,0) size 15x16
    376376              RenderBlock (anonymous) at (0,0) size 6x16
    377377                RenderText at (0,-45) size 6x106
    378378                  text run at (0,-45) width 6: "\x{27E8}"
    379           RenderMathMLOperator {mo} at (177,6) size 16x48
     379          RenderMathMLOperator {mo} at (177,5) size 16x48
    380380            RenderMathMLBlock (anonymous, flex) at (0,0) size 15x16
    381381              RenderBlock (anonymous) at (0,0) size 6x16
    382382                RenderText at (0,-45) size 6x106
    383383                  text run at (0,-45) width 6: "\x{27E9}"
    384           RenderMathMLSpace {mspace} at (192,0) size 0x32
    385         RenderText {#text} at (193,18) size 5x17
    386           text run at (193,18) width 5: " "
    387         RenderMathMLMath {math} at (197,0) size 213x32 [padding: 0 1 0 1]
     384          RenderMathMLSpace {mspace} at (192,1) size 0x32
     385        RenderText {#text} at (193,19) size 5x17
     386          text run at (193,19) width 5: " "
     387        RenderMathMLMath {math} at (197,1) size 213x32 [padding: 0 1 0 1]
    388388          RenderMathMLOperator {mo} at (1,0) size 17x32
    389389            RenderMathMLBlock (anonymous, flex) at (4,0) size 9x15
     
    515515                RenderText at (0,-45) size 7x106
    516516                  text run at (0,-45) width 7: "\x{27E7}"
    517           RenderMathMLOperator {mo} at (162,39) size 16x48
     517          RenderMathMLOperator {mo} at (162,36) size 16x48
    518518            RenderMathMLBlock (anonymous, flex) at (0,0) size 15x16
    519519              RenderBlock (anonymous) at (0,0) size 6x16
    520520                RenderText at (0,-45) size 6x106
    521521                  text run at (0,-45) width 6: "\x{27E8}"
    522           RenderMathMLOperator {mo} at (177,39) size 16x48
     522          RenderMathMLOperator {mo} at (177,36) size 16x48
    523523            RenderMathMLBlock (anonymous, flex) at (0,0) size 15x16
    524524              RenderBlock (anonymous) at (0,0) size 6x16
  • trunk/LayoutTests/platform/gtk/mathml/presentation/mo-stretch-expected.txt

    r170418 r202156  
    11layer at (0,0) size 800x600
    22  RenderView at (0,0) size 800x600
    3 layer at (0,0) size 800x269
    4   RenderBlock {HTML} at (0,0) size 800x269
    5     RenderBody {BODY} at (8,8) size 784x253
     3layer at (0,0) size 800x270
     4  RenderBlock {HTML} at (0,0) size 800x270
     5    RenderBody {BODY} at (8,8) size 784x254
    66      RenderMathMLMath {math} at (0,0) size 173x36 [padding: 0 1 0 1]
    77        RenderMathMLRow {mrow} at (1,0) size 171x36
    8           RenderMathMLOperator {mo} at (0,4) size 14x30
     8          RenderMathMLOperator {mo} at (0,3) size 14x30
    99            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    1010              RenderBlock (anonymous) at (0,0) size 6x16
    1111                RenderText at (0,-45) size 6x106
    1212                  text run at (0,-45) width 6: "("
    13           RenderMathMLOperator {mo} at (14,4) size 14x30
     13          RenderMathMLOperator {mo} at (14,3) size 14x30
    1414            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    1515              RenderBlock (anonymous) at (0,0) size 6x16
    1616                RenderText at (0,-45) size 6x106
    1717                  text run at (0,-45) width 6: ")"
    18           RenderMathMLOperator {mo} at (28,4) size 14x30
     18          RenderMathMLOperator {mo} at (28,3) size 14x30
    1919            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    2020              RenderBlock (anonymous) at (0,0) size 8x16
    2121                RenderText at (0,-45) size 8x106
    2222                  text run at (0,-45) width 8: "{"
    23           RenderMathMLOperator {mo} at (42,4) size 14x30
     23          RenderMathMLOperator {mo} at (42,3) size 14x30
    2424            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    2525              RenderBlock (anonymous) at (0,0) size 8x16
    2626                RenderText at (0,-45) size 8x106
    2727                  text run at (0,-45) width 8: "}"
    28           RenderMathMLOperator {mo} at (56,4) size 11x30
     28          RenderMathMLOperator {mo} at (56,3) size 11x30
    2929            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    3030              RenderBlock (anonymous) at (0,0) size 4x16
    3131                RenderText at (0,-45) size 4x106
    3232                  text run at (0,-45) width 4: "["
    33           RenderMathMLOperator {mo} at (67,4) size 11x30
     33          RenderMathMLOperator {mo} at (67,3) size 11x30
    3434            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    3535              RenderBlock (anonymous) at (0,0) size 4x16
    3636                RenderText at (0,-45) size 4x106
    3737                  text run at (0,-45) width 4: "]"
    38           RenderMathMLOperator {mo} at (78,4) size 11x30
     38          RenderMathMLOperator {mo} at (78,3) size 11x30
    3939            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    4040              RenderBlock (anonymous) at (0,0) size 7x16
    4141                RenderText at (0,-45) size 7x106
    4242                  text run at (0,-45) width 7: "\x{2308}"
    43           RenderMathMLOperator {mo} at (89,4) size 11x30
     43          RenderMathMLOperator {mo} at (89,3) size 11x30
    4444            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    4545              RenderBlock (anonymous) at (0,0) size 7x16
    4646                RenderText at (0,-45) size 7x106
    4747                  text run at (0,-45) width 7: "\x{2309}"
    48           RenderMathMLOperator {mo} at (100,4) size 11x30
     48          RenderMathMLOperator {mo} at (100,3) size 11x30
    4949            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    5050              RenderBlock (anonymous) at (0,0) size 7x16
    5151                RenderText at (0,-45) size 7x106
    5252                  text run at (0,-45) width 7: "\x{230A}"
    53           RenderMathMLOperator {mo} at (111,4) size 11x30
     53          RenderMathMLOperator {mo} at (111,3) size 11x30
    5454            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    5555              RenderBlock (anonymous) at (0,0) size 7x16
     
    6161                RenderText at (0,-44) size 11x106
    6262                  text run at (0,-44) width 11: "\x{222B}"
    63           RenderMathMLOperator {mo} at (138,6) size 9x28
     63          RenderMathMLOperator {mo} at (138,4) size 9x28
    6464            RenderMathMLBlock (anonymous, flex) at (1,0) size 5x16
    6565              RenderBlock (anonymous) at (0,0) size 4x16
    6666                RenderText at (0,-45) size 4x106
    6767                  text run at (0,-45) width 4: "|"
    68           RenderMathMLOperator {mo} at (146,11) size 8x16
     68          RenderMathMLOperator {mo} at (146,10) size 8x16
    6969            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
    7070              RenderBlock (anonymous) at (0,0) size 6x16
    7171                RenderText at (0,-45) size 6x106
    7272                  text run at (0,-45) width 6: "\x{2016}"
    73           RenderMathMLOperator {mo} at (153,11) size 18x16
     73          RenderMathMLOperator {mo} at (153,10) size 18x16
    7474            RenderMathMLBlock (anonymous, flex) at (4,0) size 9x16
    7575              RenderBlock (anonymous) at (0,0) size 8x16
    7676                RenderText at (0,-45) size 8x106
    7777                  text run at (0,-45) width 8: "\x{2225}"
    78       RenderText {#text} at (172,9) size 5x17
    79         text run at (172,9) width 5: " "
     78      RenderText {#text} at (172,8) size 5x17
     79        text run at (172,8) width 5: " "
    8080      RenderBR {BR} at (0,0) size 0x0
    81       RenderMathMLMath {math} at (0,35) size 173x143 [padding: 0 1 0 1]
     81      RenderMathMLMath {math} at (0,36) size 173x143 [padding: 0 1 0 1]
    8282        RenderMathMLRow {mrow} at (1,0) size 171x143
    8383          RenderMathMLOperator {mo} at (0,0) size 14x143
     
    131131                RenderText at (0,-45) size 7x106
    132132                  text run at (0,-45) width 7: "\x{230B}"
    133           RenderMathMLOperator {mo} at (122,57) size 17x36
     133          RenderMathMLOperator {mo} at (122,53) size 17x36
    134134            RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
    135135              RenderBlock (anonymous) at (0,0) size 11x18
     
    152152                  text run at (0,-45) width 8: "\x{2225}"
    153153          RenderMathMLSpace {mspace} at (170,0) size 0x76
    154       RenderText {#text} at (172,96) size 5x17
    155         text run at (172,96) width 5: " "
    156       RenderMathMLMath {math} at (176,54) size 173x99 [padding: 0 1 0 1]
    157         RenderMathMLRow {mrow} at (1,0) size 171x99
    158           RenderMathMLOperator {mo} at (0,6) size 14x93
     154      RenderText {#text} at (172,97) size 5x17
     155        text run at (172,97) width 5: " "
     156      RenderMathMLMath {math} at (176,61) size 173x93 [padding: 0 1 0 1]
     157        RenderMathMLRow {mrow} at (1,0) size 171x93
     158          RenderMathMLOperator {mo} at (0,0) size 14x93
    159159            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    160160              RenderBlock (anonymous) at (0,0) size 6x16
    161161                RenderText at (0,-45) size 6x106
    162162                  text run at (0,-45) width 6: "("
    163           RenderMathMLOperator {mo} at (14,6) size 14x93
     163          RenderMathMLOperator {mo} at (14,0) size 14x93
    164164            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    165165              RenderBlock (anonymous) at (0,0) size 6x16
    166166                RenderText at (0,-45) size 6x106
    167167                  text run at (0,-45) width 6: ")"
    168           RenderMathMLOperator {mo} at (28,6) size 14x93
     168          RenderMathMLOperator {mo} at (28,0) size 14x93
    169169            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    170170              RenderBlock (anonymous) at (0,0) size 8x16
    171171                RenderText at (0,-45) size 8x106
    172172                  text run at (0,-45) width 8: "{"
    173           RenderMathMLOperator {mo} at (42,6) size 14x93
     173          RenderMathMLOperator {mo} at (42,0) size 14x93
    174174            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    175175              RenderBlock (anonymous) at (0,0) size 8x16
    176176                RenderText at (0,-45) size 8x106
    177177                  text run at (0,-45) width 8: "}"
    178           RenderMathMLOperator {mo} at (56,6) size 11x93
     178          RenderMathMLOperator {mo} at (56,0) size 11x93
    179179            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    180180              RenderBlock (anonymous) at (0,0) size 4x16
    181181                RenderText at (0,-45) size 4x106
    182182                  text run at (0,-45) width 4: "["
    183           RenderMathMLOperator {mo} at (67,6) size 11x93
     183          RenderMathMLOperator {mo} at (67,0) size 11x93
    184184            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    185185              RenderBlock (anonymous) at (0,0) size 4x16
    186186                RenderText at (0,-45) size 4x106
    187187                  text run at (0,-45) width 4: "]"
    188           RenderMathMLOperator {mo} at (78,6) size 11x93
     188          RenderMathMLOperator {mo} at (78,0) size 11x93
    189189            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    190190              RenderBlock (anonymous) at (0,0) size 7x16
    191191                RenderText at (0,-45) size 7x106
    192192                  text run at (0,-45) width 7: "\x{2308}"
    193           RenderMathMLOperator {mo} at (89,6) size 11x93
     193          RenderMathMLOperator {mo} at (89,0) size 11x93
    194194            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    195195              RenderBlock (anonymous) at (0,0) size 7x16
    196196                RenderText at (0,-45) size 7x106
    197197                  text run at (0,-45) width 7: "\x{2309}"
    198           RenderMathMLOperator {mo} at (100,6) size 11x93
     198          RenderMathMLOperator {mo} at (100,0) size 11x93
    199199            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    200200              RenderBlock (anonymous) at (0,0) size 7x16
    201201                RenderText at (0,-45) size 7x106
    202202                  text run at (0,-45) width 7: "\x{230A}"
    203           RenderMathMLOperator {mo} at (111,6) size 11x93
     203          RenderMathMLOperator {mo} at (111,0) size 11x93
    204204            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    205205              RenderBlock (anonymous) at (0,0) size 7x16
    206206                RenderText at (0,-45) size 7x106
    207207                  text run at (0,-45) width 7: "\x{230B}"
    208           RenderMathMLOperator {mo} at (122,37) size 17x36
     208          RenderMathMLOperator {mo} at (122,28) size 17x36
    209209            RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
    210210              RenderBlock (anonymous) at (0,0) size 11x18
    211211                RenderText at (0,-44) size 11x106
    212212                  text run at (0,-44) width 11: "\x{222B}"
    213           RenderMathMLOperator {mo} at (138,6) size 9x93
     213          RenderMathMLOperator {mo} at (138,0) size 9x93
    214214            RenderMathMLBlock (anonymous, flex) at (1,0) size 5x16
    215215              RenderBlock (anonymous) at (0,0) size 4x16
    216216                RenderText at (0,-45) size 4x106
    217217                  text run at (0,-45) width 4: "|"
    218           RenderMathMLOperator {mo} at (146,0) size 8x58
     218          RenderMathMLOperator {mo} at (146,17) size 8x58
    219219            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
    220220              RenderBlock (anonymous) at (0,0) size 6x16
    221221                RenderText at (0,-45) size 6x106
    222222                  text run at (0,-45) width 6: "\x{2016}"
    223           RenderMathMLOperator {mo} at (153,0) size 18x58
     223          RenderMathMLOperator {mo} at (153,17) size 18x58
    224224            RenderMathMLBlock (anonymous, flex) at (4,0) size 9x16
    225225              RenderBlock (anonymous) at (0,0) size 8x16
    226226                RenderText at (0,-45) size 8x106
    227227                  text run at (0,-45) width 8: "\x{2225}"
    228           RenderMathMLSpace {mspace} at (170,6) size 0x51
    229       RenderText {#text} at (348,96) size 5x17
    230         text run at (348,96) width 5: " "
    231       RenderMathMLMath {math} at (352,88) size 173x37 [padding: 0 1 0 1]
    232         RenderMathMLRow {mrow} at (1,0) size 171x37
    233           RenderMathMLOperator {mo} at (0,2) size 14x34
     228          RenderMathMLSpace {mspace} at (170,0) size 0x51
     229      RenderText {#text} at (348,97) size 5x17
     230        text run at (348,97) width 5: " "
     231      RenderMathMLMath {math} at (352,89) size 173x36 [padding: 0 1 0 1]
     232        RenderMathMLRow {mrow} at (1,0) size 171x36
     233          RenderMathMLOperator {mo} at (0,1) size 14x34
    234234            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    235235              RenderBlock (anonymous) at (0,0) size 6x16
    236236                RenderText at (0,-45) size 6x106
    237237                  text run at (0,-45) width 6: "("
    238           RenderMathMLOperator {mo} at (14,2) size 14x34
     238          RenderMathMLOperator {mo} at (14,1) size 14x34
    239239            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    240240              RenderBlock (anonymous) at (0,0) size 6x16
    241241                RenderText at (0,-45) size 6x106
    242242                  text run at (0,-45) width 6: ")"
    243           RenderMathMLOperator {mo} at (28,2) size 14x34
     243          RenderMathMLOperator {mo} at (28,1) size 14x34
    244244            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    245245              RenderBlock (anonymous) at (0,0) size 8x16
    246246                RenderText at (0,-45) size 8x106
    247247                  text run at (0,-45) width 8: "{"
    248           RenderMathMLOperator {mo} at (42,2) size 14x34
     248          RenderMathMLOperator {mo} at (42,1) size 14x34
    249249            RenderMathMLBlock (anonymous, flex) at (0,0) size 14x16
    250250              RenderBlock (anonymous) at (0,0) size 8x16
    251251                RenderText at (0,-45) size 8x106
    252252                  text run at (0,-45) width 8: "}"
    253           RenderMathMLOperator {mo} at (56,2) size 11x34
     253          RenderMathMLOperator {mo} at (56,1) size 11x34
    254254            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    255255              RenderBlock (anonymous) at (0,0) size 4x16
    256256                RenderText at (0,-45) size 4x106
    257257                  text run at (0,-45) width 4: "["
    258           RenderMathMLOperator {mo} at (67,2) size 11x34
     258          RenderMathMLOperator {mo} at (67,1) size 11x34
    259259            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    260260              RenderBlock (anonymous) at (0,0) size 4x16
    261261                RenderText at (0,-45) size 4x106
    262262                  text run at (0,-45) width 4: "]"
    263           RenderMathMLOperator {mo} at (78,2) size 11x34
     263          RenderMathMLOperator {mo} at (78,1) size 11x34
    264264            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    265265              RenderBlock (anonymous) at (0,0) size 7x16
    266266                RenderText at (0,-45) size 7x106
    267267                  text run at (0,-45) width 7: "\x{2308}"
    268           RenderMathMLOperator {mo} at (89,2) size 11x34
     268          RenderMathMLOperator {mo} at (89,1) size 11x34
    269269            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    270270              RenderBlock (anonymous) at (0,0) size 7x16
    271271                RenderText at (0,-45) size 7x106
    272272                  text run at (0,-45) width 7: "\x{2309}"
    273           RenderMathMLOperator {mo} at (100,2) size 11x34
     273          RenderMathMLOperator {mo} at (100,1) size 11x34
    274274            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    275275              RenderBlock (anonymous) at (0,0) size 7x16
    276276                RenderText at (0,-45) size 7x106
    277277                  text run at (0,-45) width 7: "\x{230A}"
    278           RenderMathMLOperator {mo} at (111,2) size 11x34
     278          RenderMathMLOperator {mo} at (111,1) size 11x34
    279279            RenderMathMLBlock (anonymous, flex) at (0,0) size 11x16
    280280              RenderBlock (anonymous) at (0,0) size 7x16
    281281                RenderText at (0,-45) size 7x106
    282282                  text run at (0,-45) width 7: "\x{230B}"
    283           RenderMathMLOperator {mo} at (122,1) size 17x36
     283          RenderMathMLOperator {mo} at (122,0) size 17x36
    284284            RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
    285285              RenderBlock (anonymous) at (0,0) size 11x18
    286286                RenderText at (0,-44) size 11x106
    287287                  text run at (0,-44) width 11: "\x{222B}"
    288           RenderMathMLOperator {mo} at (138,2) size 9x34
     288          RenderMathMLOperator {mo} at (138,1) size 9x34
    289289            RenderMathMLBlock (anonymous, flex) at (1,0) size 5x16
    290290              RenderBlock (anonymous) at (0,0) size 4x16
    291291                RenderText at (0,-45) size 4x106
    292292                  text run at (0,-45) width 4: "|"
    293           RenderMathMLOperator {mo} at (146,0) size 8x24
     293          RenderMathMLOperator {mo} at (146,6) size 8x24
    294294            RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
    295295              RenderBlock (anonymous) at (0,0) size 6x16
    296296                RenderText at (0,-45) size 6x106
    297297                  text run at (0,-45) width 6: "\x{2016}"
    298           RenderMathMLOperator {mo} at (153,0) size 18x24
     298          RenderMathMLOperator {mo} at (153,6) size 18x24
    299299            RenderMathMLBlock (anonymous, flex) at (4,0) size 9x16
    300300              RenderBlock (anonymous) at (0,0) size 8x16
     
    302302                  text run at (0,-45) width 8: "\x{2225}"
    303303          RenderMathMLSpace {mspace} at (170,2) size 0x21
    304       RenderText {#text} at (524,96) size 5x17
    305         text run at (524,96) width 5: " "
     304      RenderText {#text} at (524,97) size 5x17
     305        text run at (524,97) width 5: " "
    306306      RenderBR {BR} at (0,0) size 0x0
    307       RenderMathMLMath {math} at (0,178) size 190x76 [padding: 0 1 0 1]
     307      RenderMathMLMath {math} at (0,179) size 190x76 [padding: 0 1 0 1]
    308308        RenderMathMLSquareRoot {msqrt} at (1,0) size 188x76
    309309          RenderMathMLBlock (anonymous, flex) at (0,0) size 17x76
     
    364364                  RenderText at (0,-45) size 7x106
    365365                    text run at (0,-45) width 7: "\x{230B}"
    366             RenderMathMLOperator {mo} at (122,21) size 17x36
     366            RenderMathMLOperator {mo} at (122,18) size 17x36
    367367              RenderMathMLBlock (anonymous, flex) at (0,0) size 16x18
    368368                RenderBlock (anonymous) at (0,0) size 11x18
     
    374374                  RenderText at (0,-45) size 4x106
    375375                    text run at (0,-45) width 4: "|"
    376             RenderMathMLOperator {mo} at (146,0) size 8x42
     376            RenderMathMLOperator {mo} at (146,15) size 8x42
    377377              RenderMathMLBlock (anonymous, flex) at (0,0) size 7x16
    378378                RenderBlock (anonymous) at (0,0) size 6x16
    379379                  RenderText at (0,-45) size 6x106
    380380                    text run at (0,-45) width 6: "\x{2016}"
    381             RenderMathMLOperator {mo} at (153,0) size 18x42
     381            RenderMathMLOperator {mo} at (153,15) size 18x42
    382382              RenderMathMLBlock (anonymous, flex) at (4,0) size 9x16
    383383                RenderBlock (anonymous) at (0,0) size 8x16
  • trunk/LayoutTests/platform/gtk/mathml/presentation/roots-expected.txt

    r199665 r202156  
    199199        RenderMathMLMath {math} at (185,0) size 90x41 [padding: 0 1 0 1]
    200200          RenderMathMLRoot {mroot} at (1,0) size 88x41
    201             RenderMathMLRootWrapper at (4,8) size 40x33
     201            RenderMathMLRootWrapper at (4,6) size 40x35
    202202              RenderMathMLRow {mrow} at (0,0) size 39x8
    203203                RenderMathMLToken {mi} at (0,2) size 6x5 [padding: 0 1 0 0]
     
    556556                                          text run at (0,-47) width 12: "+"
    557557                                  RenderMathMLRoot {mroot} at (27,0) size 183x49
    558                                     RenderMathMLRootWrapper at (4,11) size 6x38
     558                                    RenderMathMLRootWrapper at (4,9) size 6x40
    559559                                      RenderMathMLToken {mn} at (0,0) size 5x8
    560560                                        RenderMathMLBlock (anonymous, flex) at (0,0) size 5x8
     
    581581                                                text run at (0,-47) width 12: "+"
    582582                                        RenderMathMLRoot {mroot} at (27,0) size 139x41
    583                                           RenderMathMLRootWrapper at (4,9) size 6x32
     583                                          RenderMathMLRootWrapper at (4,6) size 6x35
    584584                                            RenderMathMLToken {mn} at (0,0) size 5x7
    585585                                              RenderMathMLBlock (anonymous, flex) at (0,0) size 5x7
     
    606606                                                      text run at (0,-47) width 12: "+"
    607607                                              RenderMathMLRoot {mroot} at (27,0) size 94x31
    608                                                 RenderMathMLRootWrapper at (4,5) size 6x26
     608                                                RenderMathMLRootWrapper at (4,4) size 6x27
    609609                                                  RenderMathMLToken {mn} at (0,0) size 5x7
    610610                                                    RenderMathMLBlock (anonymous, flex) at (0,0) size 5x7
  • trunk/LayoutTests/platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt

    r180792 r202156  
    88          RenderMathMLRow {mstyle} at (1,0) size 48x3
    99            RenderMathMLUnderOver {mover} at (0,0) size 48x3
    10               RenderMathMLOperator {mo} at (0,2) size 48x1
    11                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
     10              RenderMathMLOperator {mo} at (24,2) size 0x1
     11                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
    1212                  RenderBlock (anonymous) at (0,0) size 0x1
    1313                    RenderText at (0,-12) size 0x17
     
    2020            RenderMathMLUnderOver {mover} at (0,0) size 64x3
    2121              RenderMathMLSpace {mspace} at (0,1) size 64x2 [bgcolor=#FF0000]
    22               RenderMathMLOperator {mo} at (0,0) size 64x1
    23                 RenderMathMLBlock (anonymous, flex) at (0,0) size 64x1
     22              RenderMathMLOperator {mo} at (32,0) size 0x1
     23                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
    2424                  RenderBlock (anonymous) at (0,0) size 0x1
    2525                    RenderText at (0,-9) size 0x13
     
    3030          RenderMathMLRow {mstyle} at (1,0) size 48x3
    3131            RenderMathMLUnderOver {munder} at (0,0) size 48x3
    32               RenderMathMLOperator {mo} at (0,0) size 48x1
    33                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
     32              RenderMathMLOperator {mo} at (24,0) size 0x1
     33                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
    3434                  RenderBlock (anonymous) at (0,0) size 0x1
    3535                    RenderText at (0,-12) size 0x17
     
    4242            RenderMathMLUnderOver {munderover} at (0,0) size 64x4
    4343              RenderMathMLSpace {mspace} at (0,1) size 64x2 [bgcolor=#FF0000]
    44               RenderMathMLOperator {mo} at (0,3) size 64x1
    45                 RenderMathMLBlock (anonymous, flex) at (0,0) size 64x1
     44              RenderMathMLOperator {mo} at (32,3) size 0x1
     45                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
    4646                  RenderBlock (anonymous) at (0,0) size 0x1
    4747                    RenderText at (0,-9) size 0x13
    4848                      text run at (0,-9) width 0: "\x{23DE}"
    49               RenderMathMLOperator {mo} at (0,0) size 64x1
    50                 RenderMathMLBlock (anonymous, flex) at (0,0) size 64x1
     49              RenderMathMLOperator {mo} at (32,0) size 0x1
     50                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
    5151                  RenderBlock (anonymous) at (0,0) size 0x1
    5252                    RenderText at (0,-9) size 0x13
     
    5757          RenderMathMLRow {mstyle} at (1,0) size 48x4
    5858            RenderMathMLUnderOver {munderover} at (0,0) size 48x4
    59               RenderMathMLOperator {mo} at (0,1) size 48x1
    60                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
     59              RenderMathMLOperator {mo} at (24,1) size 0x1
     60                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
    6161                  RenderBlock (anonymous) at (0,0) size 0x1
    6262                    RenderText at (0,-12) size 0x17
    6363                      text run at (0,-12) width 0: "\x{23DE}"
    6464              RenderMathMLSpace {mspace} at (0,2) size 48x2 [bgcolor=#FF0000]
    65               RenderMathMLOperator {mo} at (0,0) size 48x1
    66                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
     65              RenderMathMLOperator {mo} at (24,0) size 0x1
     66                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
    6767                  RenderBlock (anonymous) at (0,0) size 0x1
    6868                    RenderText at (0,-9) size 0x13
     
    7373          RenderMathMLRow {mstyle} at (1,0) size 48x4
    7474            RenderMathMLUnderOver {munderover} at (0,0) size 48x4
    75               RenderMathMLOperator {mo} at (0,2) size 48x1
    76                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
     75              RenderMathMLOperator {mo} at (24,2) size 0x1
     76                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
    7777                  RenderBlock (anonymous) at (0,0) size 0x1
    7878                    RenderText at (0,-12) size 0x17
    7979                      text run at (0,-12) width 0: "\x{23DE}"
    80               RenderMathMLOperator {mo} at (0,3) size 48x1
    81                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
     80              RenderMathMLOperator {mo} at (24,3) size 0x1
     81                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
    8282                  RenderBlock (anonymous) at (0,0) size 0x1
    8383                    RenderText at (0,-9) size 0x13
     
    9090            RenderMathMLUnderOver {munder} at (0,0) size 48x4
    9191              RenderMathMLUnderOver {mover} at (0,0) size 48x3
    92                 RenderMathMLOperator {mo} at (0,2) size 48x1
    93                   RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
     92                RenderMathMLOperator {mo} at (24,2) size 0x1
     93                  RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
    9494                    RenderBlock (anonymous) at (0,0) size 0x1
    9595                      RenderText at (0,-12) size 0x17
    9696                        text run at (0,-12) width 0: "\x{23DE}"
    9797                RenderMathMLSpace {mspace} at (0,0) size 48x2 [bgcolor=#FF0000]
    98               RenderMathMLOperator {mo} at (0,3) size 48x1
    99                 RenderMathMLBlock (anonymous, flex) at (0,0) size 48x1
     98              RenderMathMLOperator {mo} at (24,3) size 0x1
     99                RenderMathMLBlock (anonymous, flex) at (0,0) size 0x1
    100100                  RenderBlock (anonymous) at (0,0) size 0x1
    101101                    RenderText at (0,-9) size 0x13
  • trunk/LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt

    r199293 r202156  
    66      RenderBlock {P} at (0,0) size 784x24
    77        RenderMathMLMath {math} at (0,3) size 10x22 [padding: 0 1 0 1]
    8           RenderMathMLRow {mstyle} at (1,0) size 16x22
    9             RenderMathMLUnderOver {mover} at (0,0) size 16x22
    10               RenderMathMLOperator {mo} at (0,1) size 16x21
    11                 RenderMathMLBlock (anonymous, flex) at (2,0) size 11x4
    12                   RenderBlock (anonymous) at (0,0) size 2x4
     8          RenderMathMLRow {mstyle} at (1,0) size 8x22
     9            RenderMathMLUnderOver {mover} at (0,0) size 8x22
     10              RenderMathMLOperator {mo} at (0,1) size 8x21
     11                RenderMathMLBlock (anonymous, flex) at (2,0) size 2x4
     12                  RenderBlock (anonymous) at (0,0) size 1x4
    1313                    RenderText at (0,-3) size 2x0
    1414                      text run at (0,-3) width 2: "\x{219C}"
    15               RenderMathMLSpace {mspace} at (4,0) size 8x1
     15              RenderMathMLSpace {mspace} at (0,0) size 8x1
    1616        RenderText {#text} at (0,0) size 0x0
    1717      RenderBlock {P} at (0,40) size 784x24
    1818        RenderMathMLMath {math} at (0,3) size 17x22 [padding: 0 1 0 1]
    19           RenderMathMLRow {mstyle} at (1,0) size 26x22
    20             RenderMathMLUnderOver {mover} at (0,0) size 26x22
    21               RenderMathMLOperator {mo} at (0,1) size 26x21
    22                 RenderMathMLBlock (anonymous, flex) at (2,0) size 22x4
    23                   RenderBlock (anonymous) at (0,0) size 2x4
     19          RenderMathMLRow {mstyle} at (1,0) size 15x22
     20            RenderMathMLUnderOver {mover} at (0,0) size 15x22
     21              RenderMathMLOperator {mo} at (4,1) size 7x21
     22                RenderMathMLBlock (anonymous, flex) at (2,0) size 2x4
     23                  RenderBlock (anonymous) at (0,0) size 1x4
    2424                    RenderText at (0,-3) size 2x0
    2525                      text run at (0,-3) width 2: "\x{219C}"
    26               RenderMathMLSpace {mspace} at (5,0) size 16x1
     26              RenderMathMLSpace {mspace} at (0,0) size 15x1
    2727        RenderText {#text} at (0,0) size 0x0
    2828      RenderBlock {P} at (0,80) size 784x41
    2929        RenderMathMLMath {math} at (0,0) size 152x42 [padding: 0 1 0 1]
    30           RenderMathMLRow {mstyle} at (1,0) size 156x42
    31             RenderMathMLUnderOver {mover} at (0,0) size 156x42
    32               RenderMathMLOperator {mo} at (0,1) size 156x41
    33                 RenderMathMLBlock (anonymous, flex) at (2,0) size 151x4
    34                   RenderBlock (anonymous) at (0,0) size 2x4
     30          RenderMathMLRow {mstyle} at (1,0) size 150x42
     31            RenderMathMLUnderOver {mover} at (0,0) size 150x42
     32              RenderMathMLOperator {mo} at (71,1) size 8x41
     33                RenderMathMLBlock (anonymous, flex) at (2,0) size 2x4
     34                  RenderBlock (anonymous) at (0,0) size 1x4
    3535                    RenderText at (0,-3) size 2x0
    3636                      text run at (0,-3) width 2: "\x{219C}"
    37               RenderMathMLSpace {mspace} at (2,0) size 151x1
     37              RenderMathMLSpace {mspace} at (0,0) size 150x1
    3838        RenderText {#text} at (0,0) size 0x0
  • trunk/Source/WebCore/ChangeLog

    r202155 r202156  
     12016-06-16  Frederic Wang  <fwang@igalia.com>
     2
     3        Add separate MathOperator for selection/measuring/drawing of stretchy operators
     4        https://bugs.webkit.org/show_bug.cgi?id=152244
     5
     6        Reviewed by Brent Fulgham.
     7
     8        We complete the class to select, measure and draw stretchy operators that is independent
     9        from RenderMathMLOperator. That way, we will be able use stretchy operator without having
     10        to introduce & manage anonymous RenderMathMLOperator's
     11        (e.g for <mroot>, <msqrt> and <mfenced>).
     12
     13        No new tests, already covered by existing tests.
     14
     15        * rendering/mathml/MathOperator.cpp:
     16        (WebCore::ascentForGlyph): Add this helper function to get glyph ascent.
     17        (WebCore::descentForGlyph): Add this helper function to get glyph descent.
     18        (WebCore::MathOperator::reset): Initialize all the data and calculate ascent/descent of the
     19        base glyph.
     20        (WebCore::MathOperator::setSizeVariant): Set the width/ascent/descent.
     21        (WebCore::MathOperator::setGlyphAssembly): Ditto.
     22        (WebCore::MathOperator::calculateDisplayStyleLargeOperator): Remove the STIX Word hack and
     23        change m_maxPreferredWidth to use the actual width instead.
     24        (WebCore::MathOperator::stretchTo): New functions to execute the actual operator streching.
     25        (WebCore::MathOperator::fillWithVerticalExtensionGlyph): Add a FIXME for bug 155434.
     26        (WebCore::MathOperator::fillWithHorizontalExtensionGlyph): Align all the glyph baselines on
     27        the same axis, given by m_ascent.
     28        Add a FIXME for bug 155434.
     29        (WebCore::MathOperator::paintHorizontalGlyphAssembly): Ditto.
     30        (WebCore::MathOperator::paint): Public function to do the painting.
     31        (WebCore::MathOperator::paintVerticalGlyphAssembly): Deleted.
     32        * rendering/mathml/MathOperator.h: Update declarations and make most of the members private.
     33        (WebCore::MathOperator::ascent): Function to expose m_ascent.
     34        (WebCore::MathOperator::descent): Function to expose m_descent.
     35        * rendering/mathml/RenderMathMLOperator.cpp:
     36        (WebCore::RenderMathMLOperator::stretchTo): Forward the stretching call to MathOperator.
     37        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Unfold advanceForGlyph
     38        since we delete RenderMathMLOperator::advanceForGlyph. Just rely on
     39        MathOperator::maxPreferredWidth to determine the preferred width of stretchy operators.
     40        For horizontal operators, we just use the width of the base glyph.
     41        Finally, we remove the dirty flag on preferred logical width.
     42        (WebCore::RenderMathMLOperator::rebuildTokenContent): Reinit the MathOperator instance.
     43        (WebCore::RenderMathMLOperator::updateFromElement): Force more updates of
     44        RenderMathMLOperator to avoid test breakage.
     45        (WebCore::RenderMathMLOperator::styleDidChange): Call MathOperator::reset to take into
     46        account style change.
     47        (WebCore::RenderMathMLOperator::updateStyle): Remove unused code.
     48        (WebCore::RenderMathMLOperator::firstLineBaseline): Use MathOperator::ascent() function.
     49        (WebCore::RenderMathMLOperator::computeLogicalHeight): Use MathOperator::ascent() and
     50        MathOperator::descent() functions to calculate the height.
     51        (WebCore::RenderMathMLOperator::paint): Only stretched operators are treated specially.
     52        We center horizontal operator and forward the paint() call to MathOperator.
     53        (WebCore::RenderMathMLOperator::trailingSpaceError): The error is now just the difference
     54        between the values returned by MathOperator::maxPreferredWidth() and
     55        MathOperator::width().
     56        (WebCore::boundsForGlyph): Deleted.
     57        (WebCore::heightForGlyph): Deleted.
     58        (WebCore::advanceWidthForGlyph): Deleted.
     59        (WebCore::RenderMathMLOperator::updateStyle): Deleted.
     60
    1612016-06-16  Jiewen Tan  <jiewen_tan@apple.com>
    262
  • trunk/Source/WebCore/rendering/mathml/MathOperator.cpp

    r201881 r202156  
    4242{
    4343    return boundsForGlyph(data).height();
     44}
     45
     46static inline void getAscentAndDescentForGlyph(const GlyphData& data, LayoutUnit& ascent, LayoutUnit& descent)
     47{
     48    FloatRect bounds = boundsForGlyph(data);
     49    ascent = -bounds.y();
     50    descent = bounds.maxY();
    4451}
    4552
     
    8592void MathOperator::reset(const RenderStyle& style)
    8693{
     94    m_stretchType = StretchType::Unstretched;
    8795    m_maxPreferredWidth = 0;
    8896    m_width = 0;
     97    m_ascent = 0;
     98    m_descent = 0;
     99    m_italicCorrection = 0;
    89100
    90101    // We use the base size for the calculation of the preferred width.
     
    93104        return;
    94105    m_maxPreferredWidth = m_width = advanceWidthForGlyph(baseGlyph);
     106    getAscentAndDescentForGlyph(baseGlyph, m_ascent, m_descent);
    95107
    96108    if (m_operatorType == Type::VerticalOperator)
     
    118130    m_stretchType = StretchType::SizeVariant;
    119131    m_variant = sizeVariant;
     132    m_width = advanceWidthForGlyph(sizeVariant);
     133    getAscentAndDescentForGlyph(sizeVariant, m_ascent, m_descent);
    120134}
    121135
     
    125139    m_stretchType = StretchType::GlyphAssembly;
    126140    m_assembly = assemblyData;
     141    if (m_operatorType == Type::VerticalOperator) {
     142        m_width = 0;
     143        m_width = std::max<LayoutUnit>(m_width, advanceWidthForGlyph(m_assembly.topOrRight));
     144        m_width = std::max<LayoutUnit>(m_width, advanceWidthForGlyph(m_assembly.extension));
     145        m_width = std::max<LayoutUnit>(m_width, advanceWidthForGlyph(m_assembly.bottomOrLeft));
     146        m_width = std::max<LayoutUnit>(m_width, advanceWidthForGlyph(m_assembly.middle));
     147    } else {
     148        m_ascent = 0;
     149        m_descent = 0;
     150        LayoutUnit ascent, descent;
     151        getAscentAndDescentForGlyph(m_assembly.bottomOrLeft, ascent, descent);
     152        m_ascent = std::max(m_ascent, ascent);
     153        m_descent = std::max(m_descent, descent);
     154        getAscentAndDescentForGlyph(m_assembly.extension, ascent, descent);
     155        m_ascent = std::max(m_ascent, ascent);
     156        m_descent = std::max(m_descent, descent);
     157        getAscentAndDescentForGlyph(m_assembly.topOrRight, ascent, descent);
     158        m_ascent = std::max(m_ascent, ascent);
     159        m_descent = std::max(m_descent, descent);
     160        getAscentAndDescentForGlyph(m_assembly.middle, ascent, descent);
     161        m_ascent = std::max(m_ascent, ascent);
     162        m_descent = std::max(m_descent, descent);
     163    }
    127164}
    128165
     
    146183        GlyphData glyphData(sizeVariant, baseGlyph.font);
    147184        setSizeVariant(glyphData);
    148         // Large operators in STIX Word have incorrect advance width, causing misplacement of superscript, so we use the glyph bound instead (http://sourceforge.net/p/stixfonts/tracking/49/).
    149         m_maxPreferredWidth = boundsForGlyph(glyphData).width();
     185        m_maxPreferredWidth = m_width;
    150186        m_italicCorrection = glyphData.font->mathData()->getItalicCorrection(*glyphData.font, glyphData.glyph);
    151187        if (heightForGlyph(glyphData) >= displayOperatorMinHeight)
     
    340376
    341377    setGlyphAssembly(assemblyData);
     378}
     379
     380void MathOperator::stretchTo(const RenderStyle& style, LayoutUnit ascent, LayoutUnit descent)
     381{
     382    ASSERT(m_operatorType == Type::VerticalOperator);
     383    calculateStretchyData(style, false, ascent + descent);
     384    if (m_stretchType == StretchType::GlyphAssembly) {
     385        m_ascent = ascent;
     386        m_descent = descent;
     387    }
     388}
     389
     390void MathOperator::stretchTo(const RenderStyle& style, LayoutUnit width)
     391{
     392    ASSERT(m_operatorType == Type::HorizontalOperator);
     393    calculateStretchyData(style, false, width);
     394    if (m_stretchType == StretchType::GlyphAssembly)
     395        m_width = width;
    342396}
    343397
     
    421475    FloatRect lastPaintedGlyphRect(from, FloatSize());
    422476
     477    // FIXME: In practice, only small stretch sizes are requested but we may need to limit the number
     478    // of pieces that can be repeated to avoid hangs. See http://webkit.org/b/155434
    423479    while (lastPaintedGlyphRect.maxY() < to.y()) {
    424480        lastPaintedGlyphRect = paintGlyph(style, info, m_assembly.extension, glyphOrigin, TrimTopAndBottom);
     
    438494    ASSERT(m_assembly.extension.isValid());
    439495    ASSERT(from.x() <= to.x());
     496    ASSERT(from.y() == to.y());
    440497
    441498    // If there is no space for the extension glyph, we don't need to do anything.
     
    454511    // Trimming may remove up to two pixels from the left of the extender glyph, so we move it left by two pixels.
    455512    float offsetToGlyphLeft = -2;
    456     LayoutPoint glyphOrigin = LayoutPoint(from.x() + offsetToGlyphLeft, std::min(from.y(), to.y()));
     513    LayoutPoint glyphOrigin = LayoutPoint(from.x() + offsetToGlyphLeft, from.y());
    457514    FloatRect lastPaintedGlyphRect(from, FloatSize());
    458515
     516    // FIXME: In practice, only small stretch sizes are requested but we may need to limit the number
     517    // of pieces that can be repeated to avoid hangs. See http://webkit.org/b/155434
    459518    while (lastPaintedGlyphRect.maxX() < to.x()) {
    460519        lastPaintedGlyphRect = paintGlyph(style, info, m_assembly.extension, glyphOrigin, TrimLeftAndRight);
     
    477536    // We are positioning the glyphs so that the edge of the tight glyph bounds line up exactly with the edges of our paint box.
    478537    LayoutPoint operatorTopLeft = paintOffset;
    479     operatorTopLeft = ceiledIntPoint(operatorTopLeft);
    480538    FloatRect topGlyphBounds = boundsForGlyph(m_assembly.topOrRight);
    481539    LayoutPoint topGlyphOrigin(operatorTopLeft.x(), operatorTopLeft.y() - topGlyphBounds.y());
     
    509567    // We are positioning the glyphs so that the edge of the tight glyph bounds line up exactly with the edges of our paint box.
    510568    LayoutPoint operatorTopLeft = paintOffset;
    511     operatorTopLeft = ceiledIntPoint(operatorTopLeft);
    512     LayoutPoint leftGlyphOrigin(operatorTopLeft.x(), operatorTopLeft.y() + m_ascent);
     569    LayoutUnit baselineY = operatorTopLeft.y() + m_ascent;
     570    LayoutPoint leftGlyphOrigin(operatorTopLeft.x(), baselineY);
    513571    LayoutRect leftGlyphPaintRect = paintGlyph(style, info, m_assembly.bottomOrLeft, leftGlyphOrigin, TrimRight);
    514572
    515573    FloatRect rightGlyphBounds = boundsForGlyph(m_assembly.topOrRight);
    516     LayoutPoint rightGlyphOrigin(operatorTopLeft.x() + m_width - rightGlyphBounds.width(), operatorTopLeft.y() + m_ascent);
     574    LayoutPoint rightGlyphOrigin(operatorTopLeft.x() + stretchSize() - rightGlyphBounds.width(), baselineY);
    517575    LayoutRect rightGlyphPaintRect = paintGlyph(style, info, m_assembly.topOrRight, rightGlyphOrigin, TrimLeft);
    518576
    519     LayoutPoint baselineShift(0, m_ascent);
    520577    if (m_assembly.middle.isValid()) {
    521578        // Center the glyph origin between the start and end glyph paint extents.
    522         LayoutPoint middleGlyphOrigin(operatorTopLeft.x(), leftGlyphOrigin.y());
     579        LayoutPoint middleGlyphOrigin(operatorTopLeft.x(), baselineY);
    523580        middleGlyphOrigin.moveBy(LayoutPoint((rightGlyphPaintRect.x() - leftGlyphPaintRect.maxX()) / 2.0, 0));
    524581        LayoutRect middleGlyphPaintRect = paintGlyph(style, info, m_assembly.middle, middleGlyphOrigin, TrimLeftAndRight);
    525         fillWithHorizontalExtensionGlyph(style, info, leftGlyphPaintRect.maxXMinYCorner() + baselineShift, middleGlyphPaintRect.minXMinYCorner() + baselineShift);
    526         fillWithHorizontalExtensionGlyph(style, info, middleGlyphPaintRect.maxXMinYCorner() + baselineShift, rightGlyphPaintRect.minXMinYCorner() + baselineShift);
     582        fillWithHorizontalExtensionGlyph(style, info, LayoutPoint(leftGlyphPaintRect.maxX(), baselineY), LayoutPoint(middleGlyphPaintRect.x(), baselineY));
     583        fillWithHorizontalExtensionGlyph(style, info, LayoutPoint(middleGlyphPaintRect.maxX(), baselineY), LayoutPoint(rightGlyphPaintRect.x(), baselineY));
    527584    } else
    528         fillWithHorizontalExtensionGlyph(style, info, leftGlyphPaintRect.maxXMinYCorner() + baselineShift, rightGlyphPaintRect.minXMinYCorner() + baselineShift);
     585        fillWithHorizontalExtensionGlyph(style, info, LayoutPoint(leftGlyphPaintRect.maxX(), baselineY), LayoutPoint(rightGlyphPaintRect.x(), baselineY));
     586}
     587
     588void MathOperator::paint(const RenderStyle& style, PaintInfo& info, const LayoutPoint& paintOffset)
     589{
     590    if (info.context().paintingDisabled() || info.phase != PaintPhaseForeground || style.visibility() != VISIBLE)
     591        return;
     592
     593    GraphicsContextStateSaver stateSaver(info.context());
     594    info.context().setFillColor(style.visitedDependentColor(CSSPropertyColor));
     595
     596    if (m_stretchType == StretchType::GlyphAssembly) {
     597        if (m_operatorType == Type::VerticalOperator)
     598            paintVerticalGlyphAssembly(style, info, paintOffset);
     599        else
     600            paintHorizontalGlyphAssembly(style, info, paintOffset);
     601        return;
     602    }
     603
     604    GlyphData glyphData;
     605    ASSERT(m_stretchType == StretchType::Unstretched || m_stretchType == StretchType::SizeVariant);
     606    if (m_stretchType == StretchType::Unstretched) {
     607        if (!getBaseGlyph(style, glyphData))
     608            return;
     609    } else if (m_stretchType == StretchType::SizeVariant) {
     610        ASSERT(m_variant.isValid());
     611        glyphData = m_variant;
     612    }
     613    GlyphBuffer buffer;
     614    buffer.add(glyphData.glyph, glyphData.font, advanceWidthForGlyph(glyphData));
     615    LayoutPoint operatorTopLeft = paintOffset;
     616    FloatRect glyphBounds = boundsForGlyph(glyphData);
     617    LayoutPoint operatorOrigin(operatorTopLeft.x(), operatorTopLeft.y() - glyphBounds.y());
     618    info.context().drawGlyphs(style.fontCascade(), *glyphData.font, buffer, 0, 1, operatorOrigin);
    529619}
    530620
  • trunk/Source/WebCore/rendering/mathml/MathOperator.h

    r201881 r202156  
    4747    LayoutUnit width() const { return m_width; }
    4848    LayoutUnit maxPreferredWidth() const { return m_maxPreferredWidth; }
     49    LayoutUnit ascent() const { return m_ascent; }
     50    LayoutUnit descent() const { return m_descent; }
    4951    LayoutUnit italicCorrection() const { return m_italicCorrection; }
    5052
     53    void stretchTo(const RenderStyle&, LayoutUnit ascent, LayoutUnit descent);
     54    void stretchTo(const RenderStyle&, LayoutUnit width);
    5155    bool isStretched() const { return m_stretchType != StretchType::Unstretched; }
    5256    void unstretch() { m_stretchType = StretchType::Unstretched; }
    5357
    54     // FIXME: All the code below should be private when it is no longer needed by RenderMathMLOperator (http://webkit.org/b/152244).
     58    void paint(const RenderStyle&, PaintInfo&, const LayoutPoint&);
    5559
     60private:
    5661    struct GlyphAssemblyData {
    5762        GlyphData topOrRight;
  • trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp

    r201881 r202156  
    22 * Copyright (C) 2010 Alex Milowski (alex@milowski.com). All rights reserved.
    33 * Copyright (C) 2010 François Sausset (sausset@gmail.com). All rights reserved.
    4  * Copyright (C) 2013 Igalia S.L.
     4 * Copyright (C) 2013, 2016 Igalia S.L.
    55 *
    66 * Redistribution and use in source and binary forms, with or without
     
    208208    m_stretchHeightAboveBaseline *= aspect;
    209209    m_stretchDepthBelowBaseline *= aspect;
     210
     211    m_mathOperator.stretchTo(style(), m_stretchHeightAboveBaseline, m_stretchDepthBelowBaseline);
     212
    210213    updateStyle();
    211214}
     
    220223
    221224    m_stretchWidth = width;
     225    m_mathOperator.stretchTo(style(), width);
    222226
    223227    setOperatorProperties();
     
    235239}
    236240
    237 static inline FloatRect boundsForGlyph(const GlyphData& data)
    238 {
    239     return data.font && data.glyph ? data.font->boundsForGlyph(data.glyph) : FloatRect();
    240 }
    241 
    242 static inline float heightForGlyph(const GlyphData& data)
    243 {
    244     return boundsForGlyph(data).height();
    245 }
    246 
    247 static inline float advanceWidthForGlyph(const GlyphData& data)
    248 {
    249     return data.font && data.glyph ? data.font->widthForGlyph(data.glyph) : 0;
    250 }
    251 
    252241void RenderMathMLOperator::computePreferredLogicalWidths()
    253242{
     
    260249            // In some fonts, glyphs for invisible operators have nonzero width. Consequently, we subtract that width here to avoid wide gaps.
    261250            GlyphData data = style().fontCascade().glyphDataForCharacter(m_textContent, false);
    262             float glyphWidth = advanceWidthForGlyph(data);
     251            float glyphWidth = data.isValid() ? data.font->widthForGlyph(data.glyph) : 0;
    263252            ASSERT(glyphWidth <= m_minPreferredLogicalWidth);
    264253            m_minPreferredLogicalWidth -= glyphWidth;
    265254            m_maxPreferredLogicalWidth -= glyphWidth;
    266255        }
    267         return;
    268     }
    269 
    270     // FIXME: We should not use stretchSize during the preferred width calculation nor should we leave logical width dirty (http://webkit.org/b/152244).
    271     MathOperator::Type type;
    272     if (isLargeOperatorInDisplayStyle())
    273         type = MathOperator::Type::DisplayOperator;
    274     else
    275         type = m_isVertical ? MathOperator::Type::VerticalOperator : MathOperator::Type::HorizontalOperator;
    276     m_mathOperator.setOperator(style(), m_textContent, type);
    277     float maximumGlyphWidth;
    278     if (!m_isVertical) {
    279         maximumGlyphWidth = m_mathOperator.width();
    280         if (maximumGlyphWidth < stretchSize())
    281             maximumGlyphWidth = stretchSize();
    282256    } else
    283         maximumGlyphWidth = m_mathOperator.maxPreferredWidth();
    284     m_maxPreferredLogicalWidth = m_minPreferredLogicalWidth = m_leadingSpace + maximumGlyphWidth + m_trailingSpace;
     257        m_maxPreferredLogicalWidth = m_minPreferredLogicalWidth = m_leadingSpace + m_mathOperator.maxPreferredWidth() + m_trailingSpace;
     258
     259    setPreferredLogicalWidthsDirty(false);
    285260}
    286261
     
    303278    m_textContent = textContent.length() == 1 ? textContent[0] : 0;
    304279    setOperatorProperties();
     280
     281    if (shouldAllowStretching()) {
     282        MathOperator::Type type;
     283        if (isLargeOperatorInDisplayStyle())
     284            type = MathOperator::Type::DisplayOperator;
     285        else
     286            type = m_isVertical ? MathOperator::Type::VerticalOperator : MathOperator::Type::HorizontalOperator;
     287        m_mathOperator.setOperator(style(), m_textContent, type);
     288    } else
     289        m_mathOperator.unstretch();
     290
    305291    updateStyle();
    306292    setNeedsLayoutAndPrefWidthsRecalc();
     
    321307void RenderMathMLOperator::updateFromElement()
    322308{
    323     setOperatorProperties();
    324     RenderMathMLToken::updateFromElement();
     309    updateTokenContent();
    325310}
    326311
     
    341326{
    342327    RenderMathMLBlock::styleDidChange(diff, oldStyle);
     328    m_mathOperator.reset(style());
    343329    updateOperatorProperties();
    344330}
     
    350336        return;
    351337
    352     m_mathOperator.unstretch();
    353     m_mathOperator.m_italicCorrection = 0;
    354338    // We add spacing around the operator.
    355339    // FIXME: The spacing should be added to the whole embellished operator (https://bugs.webkit.org/show_bug.cgi?id=124831).
     
    361345    wrapper->setStyle(WTFMove(newStyle));
    362346    wrapper->setNeedsLayoutAndPrefWidthsRecalc();
    363 
    364     if (!shouldAllowStretching())
    365         return;
    366 
    367     MathOperator::Type type;
    368     if (isLargeOperatorInDisplayStyle())
    369         type = MathOperator::Type::DisplayOperator;
    370     else
    371         type = m_isVertical ? MathOperator::Type::VerticalOperator : MathOperator::Type::HorizontalOperator;
    372     m_mathOperator.setOperator(style(), m_textContent, type);
    373     if (m_isVertical && isLargeOperatorInDisplayStyle())
    374         m_mathOperator.calculateDisplayStyleLargeOperator(style());
    375     else {
    376         m_mathOperator.calculateStretchyData(style(), false, stretchSize());
    377         if (!m_mathOperator.isStretched())
    378             return;
    379     }
    380 
    381     if (m_isVertical && m_mathOperator.m_stretchType == MathOperator::StretchType::SizeVariant) {
    382         // We resize the operator to match the one of the size variant.
    383         if (isLargeOperatorInDisplayStyle()) {
    384             // The stretch size is actually not involved in the selection of the size variant in findDisplayStyleLargeOperator.
    385             // We simply use the height and depth of the selected size variant glyph.
    386             FloatRect glyphBounds = boundsForGlyph(m_mathOperator.m_variant);
    387             m_stretchHeightAboveBaseline = -glyphBounds.y();
    388             m_stretchDepthBelowBaseline = glyphBounds.maxY();
    389         } else {
    390             // We rescale the height and depth proportionately.
    391             float variantSize = heightForGlyph(m_mathOperator.m_variant);
    392             float size = stretchSize();
    393             float aspect = size > 0 ? variantSize / size : 1.0;
    394             m_stretchHeightAboveBaseline *= aspect;
    395             m_stretchDepthBelowBaseline *= aspect;
    396         }
    397     }
    398 
    399     if (!m_isVertical) {
    400         if (m_mathOperator.m_stretchType == MathOperator::StretchType::SizeVariant) {
    401             FloatRect glyphBounds = boundsForGlyph(m_mathOperator.m_variant);
    402             m_stretchHeightAboveBaseline = -glyphBounds.y();
    403             m_stretchDepthBelowBaseline = glyphBounds.maxY();
    404             m_stretchWidth = advanceWidthForGlyph(m_mathOperator.m_variant);
    405         } else if (m_mathOperator.m_stretchType == MathOperator::StretchType::GlyphAssembly) {
    406             FloatRect glyphBounds;
    407             m_stretchHeightAboveBaseline = 0;
    408             m_stretchDepthBelowBaseline = 0;
    409 
    410             glyphBounds = boundsForGlyph(m_mathOperator.m_assembly.bottomOrLeft);
    411             m_stretchHeightAboveBaseline = std::max<LayoutUnit>(m_stretchHeightAboveBaseline, -glyphBounds.y());
    412             m_stretchDepthBelowBaseline = std::max<LayoutUnit>(m_stretchDepthBelowBaseline, glyphBounds.maxY());
    413 
    414             glyphBounds = boundsForGlyph(m_mathOperator.m_assembly.topOrRight);
    415             m_stretchHeightAboveBaseline = std::max<LayoutUnit>(m_stretchHeightAboveBaseline, -glyphBounds.y());
    416             m_stretchDepthBelowBaseline = std::max<LayoutUnit>(m_stretchDepthBelowBaseline, glyphBounds.maxY());
    417 
    418             glyphBounds = boundsForGlyph(m_mathOperator.m_assembly.extension);
    419             m_stretchHeightAboveBaseline = std::max<LayoutUnit>(m_stretchHeightAboveBaseline, -glyphBounds.y());
    420             m_stretchDepthBelowBaseline = std::max<LayoutUnit>(m_stretchDepthBelowBaseline, glyphBounds.maxY());
    421 
    422             if (m_mathOperator.m_assembly.middle.isValid()) {
    423                 glyphBounds = boundsForGlyph(m_mathOperator.m_assembly.middle);
    424                 m_stretchHeightAboveBaseline = std::max<LayoutUnit>(m_stretchHeightAboveBaseline, -glyphBounds.y());
    425                 m_stretchDepthBelowBaseline = std::max<LayoutUnit>(m_stretchDepthBelowBaseline, glyphBounds.maxY());
    426             }
    427         }
    428     }
    429347}
    430348
     
    432350{
    433351    if (m_mathOperator.isStretched())
    434         return Optional<int>(m_stretchHeightAboveBaseline);
     352        return Optional<int>(m_mathOperator.ascent());
    435353    return RenderMathMLToken::firstLineBaseline();
    436354}
     
    439357{
    440358    if (m_mathOperator.isStretched())
    441         logicalHeight = m_stretchHeightAboveBaseline + m_stretchDepthBelowBaseline;
     359        logicalHeight = m_mathOperator.ascent() + m_mathOperator.descent();
    442360    RenderBox::computeLogicalHeight(logicalHeight, logicalTop, computedValues);
    443361}
     
    446364{
    447365    RenderMathMLToken::paint(info, paintOffset);
    448 
    449     if (info.context().paintingDisabled() || info.phase != PaintPhaseForeground || style().visibility() != VISIBLE || !m_mathOperator.isStretched())
    450         return;
    451 
    452     GraphicsContextStateSaver stateSaver(info.context());
    453     info.context().setFillColor(style().visitedDependentColor(CSSPropertyColor));
    454 
    455     if (m_mathOperator.m_stretchType == MathOperator::StretchType::SizeVariant) {
    456         ASSERT(m_mathOperator.m_variant.isValid());
    457         GlyphBuffer buffer;
    458         buffer.add(m_mathOperator.m_variant.glyph, m_mathOperator.m_variant.font, advanceWidthForGlyph(m_mathOperator.m_variant));
    459         LayoutPoint operatorTopLeft = ceiledIntPoint(paintOffset + location());
    460         FloatRect glyphBounds = boundsForGlyph(m_mathOperator.m_variant);
    461         LayoutPoint operatorOrigin(operatorTopLeft.x(), operatorTopLeft.y() - glyphBounds.y());
    462         info.context().drawGlyphs(style().fontCascade(), *m_mathOperator.m_variant.font, buffer, 0, 1, operatorOrigin);
    463         return;
    464     }
    465 
    466     m_mathOperator.m_ascent = m_stretchHeightAboveBaseline;
    467     m_mathOperator.m_descent = m_stretchDepthBelowBaseline;
    468     m_mathOperator.m_width = logicalWidth();
     366    if (!m_mathOperator.isStretched())
     367        return;
     368
    469369    LayoutPoint operatorTopLeft = paintOffset + location();
    470370    operatorTopLeft.move(style().isLeftToRightDirection() ? m_leadingSpace : m_trailingSpace, 0);
    471     if (m_isVertical)
    472         m_mathOperator.paintVerticalGlyphAssembly(style(), info, operatorTopLeft);
    473     else
    474         m_mathOperator.paintHorizontalGlyphAssembly(style(), info, operatorTopLeft);
     371
     372    // Center horizontal operators.
     373    if (!m_isVertical)
     374        operatorTopLeft.move(-(m_mathOperator.width() - width()) / 2, 0);
     375
     376    m_mathOperator.paint(style(), info, operatorTopLeft);
    475377}
    476378
     
    485387LayoutUnit RenderMathMLOperator::trailingSpaceError()
    486388{
    487     const auto& primaryFont = style().fontCascade().primaryFont();
    488     if (!primaryFont.mathData())
    489         return 0;
    490 
    491389    // For OpenType MATH font, the layout is based on RenderMathOperator for which the preferred width is sometimes overestimated (bug https://bugs.webkit.org/show_bug.cgi?id=130326).
    492390    // Hence we determine the error in the logical width with respect to the actual width of the glyph(s) used to paint the operator.
    493     LayoutUnit width = logicalWidth();
    494 
    495     if (!m_mathOperator.isStretched()) {
    496         GlyphData data = style().fontCascade().glyphDataForCharacter(textContent(), !style().isLeftToRightDirection());
    497         return width - advanceWidthForGlyph(data);
    498     }
    499 
    500     if (m_mathOperator.m_stretchType == MathOperator::StretchType::SizeVariant)
    501         return width - advanceWidthForGlyph(m_mathOperator.m_variant);
    502 
    503     float assemblyWidth = advanceWidthForGlyph(m_mathOperator.m_assembly.topOrRight);
    504     assemblyWidth = std::max(assemblyWidth, advanceWidthForGlyph(m_mathOperator.m_assembly.bottomOrLeft));
    505     assemblyWidth = std::max(assemblyWidth, advanceWidthForGlyph(m_mathOperator.m_assembly.extension));
    506     if (m_mathOperator.m_assembly.middle.isValid())
    507         assemblyWidth = std::max(assemblyWidth, advanceWidthForGlyph(m_mathOperator.m_assembly.middle));
    508     return width - assemblyWidth;
     391    return m_mathOperator.maxPreferredWidth() - m_mathOperator.width();
    509392}
    510393
Note: See TracChangeset for help on using the changeset viewer.