| OLD | NEW | 
|    1 /** |    1 /** | 
|    2  * Copyright (C) 2003, 2006 Apple Computer, Inc. |    2  * Copyright (C) 2003, 2006 Apple Computer, Inc. | 
|    3  * |    3  * | 
|    4  * This library is free software; you can redistribute it and/or |    4  * This library is free software; you can redistribute it and/or | 
|    5  * modify it under the terms of the GNU Library General Public |    5  * modify it under the terms of the GNU Library General Public | 
|    6  * License as published by the Free Software Foundation; either |    6  * License as published by the Free Software Foundation; either | 
|    7  * version 2 of the License, or (at your option) any later version. |    7  * version 2 of the License, or (at your option) any later version. | 
|    8  * |    8  * | 
|    9  * This library is distributed in the hope that it will be useful, |    9  * This library is distributed in the hope that it will be useful, | 
|   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of |   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   57     return anchorBox; |   57     return anchorBox; | 
|   58 } |   58 } | 
|   59  |   59  | 
|   60 IntRect EllipsisBox::selectionRect() |   60 IntRect EllipsisBox::selectionRect() | 
|   61 { |   61 { | 
|   62     const ComputedStyle& style = layoutObject().styleRef(isFirstLineStyle()); |   62     const ComputedStyle& style = layoutObject().styleRef(isFirstLineStyle()); | 
|   63     const Font& font = style.font(); |   63     const Font& font = style.font(); | 
|   64     return enclosingIntRect(font.selectionRectForText(constructTextRun(&layoutOb
     ject(), font, m_str, style, TextRun::AllowTrailingExpansion), IntPoint(logicalLe
     ft(), logicalTop() + root().selectionTopAdjustedForPrecedingBlock()), root().sel
     ectionHeightAdjustedForPrecedingBlock())); |   64     return enclosingIntRect(font.selectionRectForText(constructTextRun(&layoutOb
     ject(), font, m_str, style, TextRun::AllowTrailingExpansion), IntPoint(logicalLe
     ft(), logicalTop() + root().selectionTopAdjustedForPrecedingBlock()), root().sel
     ectionHeightAdjustedForPrecedingBlock())); | 
|   65 } |   65 } | 
|   66  |   66  | 
|   67 bool EllipsisBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& resu
     lt, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOf
     fset, LayoutUnit lineTop, LayoutUnit lineBottom) |   67 bool EllipsisBox::nodeAtPoint(HitTestResult& result, const HitTestLocation& loca
     tionInContainer, const LayoutPoint& accumulatedOffset, LayoutUnit lineTop, Layou
     tUnit lineBottom) | 
|   68 { |   68 { | 
|   69     // FIXME: the call to roundedLayoutPoint() below is temporary and should be 
     removed once |   69     // FIXME: the call to roundedLayoutPoint() below is temporary and should be 
     removed once | 
|   70     // the transition to LayoutUnit-based types is complete (crbug.com/321237) |   70     // the transition to LayoutUnit-based types is complete (crbug.com/321237) | 
|   71     LayoutPoint adjustedLocation = accumulatedOffset + topLeft().roundedLayoutPo
     int(); |   71     LayoutPoint adjustedLocation = accumulatedOffset + topLeft().roundedLayoutPo
     int(); | 
|   72  |   72  | 
|   73     // Hit test the markup box. |   73     // Hit test the markup box. | 
|   74     if (InlineBox* markupBox = this->markupBox()) { |   74     if (InlineBox* markupBox = this->markupBox()) { | 
|   75         const ComputedStyle& style = layoutObject().styleRef(isFirstLineStyle())
     ; |   75         const ComputedStyle& style = layoutObject().styleRef(isFirstLineStyle())
     ; | 
|   76         LayoutUnit mtx = adjustedLocation.x() + m_logicalWidth - markupBox->x(); |   76         LayoutUnit mtx = adjustedLocation.x() + m_logicalWidth - markupBox->x(); | 
|   77         LayoutUnit mty = adjustedLocation.y() + style.fontMetrics().ascent() - (
     markupBox->y() + markupBox->layoutObject().style(isFirstLineStyle())->fontMetric
     s().ascent()); |   77         LayoutUnit mty = adjustedLocation.y() + style.fontMetrics().ascent() - (
     markupBox->y() + markupBox->layoutObject().style(isFirstLineStyle())->fontMetric
     s().ascent()); | 
|   78         if (markupBox->nodeAtPoint(request, result, locationInContainer, LayoutP
     oint(mtx, mty), lineTop, lineBottom)) { |   78         if (markupBox->nodeAtPoint(result, locationInContainer, LayoutPoint(mtx,
      mty), lineTop, lineBottom)) { | 
|   79             layoutObject().updateHitTestResult(result, locationInContainer.point
     () - LayoutSize(mtx, mty)); |   79             layoutObject().updateHitTestResult(result, locationInContainer.point
     () - LayoutSize(mtx, mty)); | 
|   80             return true; |   80             return true; | 
|   81         } |   81         } | 
|   82     } |   82     } | 
|   83  |   83  | 
|   84     FloatPointWillBeLayoutPoint boxOrigin = locationIncludingFlipping(); |   84     FloatPointWillBeLayoutPoint boxOrigin = locationIncludingFlipping(); | 
|   85     boxOrigin.moveBy(accumulatedOffset); |   85     boxOrigin.moveBy(accumulatedOffset); | 
|   86     FloatRectWillBeLayoutRect boundsRect(boxOrigin, size()); |   86     FloatRectWillBeLayoutRect boundsRect(boxOrigin, size()); | 
|   87     if (visibleToHitTestRequest(request) && boundsRect.intersects(FloatRectWillB
     eLayoutRect(HitTestLocation::rectForPoint(locationInContainer.point(), 0, 0, 0, 
     0)))) { |   87     if (visibleToHitTestRequest(result.hitTestRequest()) && boundsRect.intersect
     s(FloatRectWillBeLayoutRect(HitTestLocation::rectForPoint(locationInContainer.po
     int(), 0, 0, 0, 0)))) { | 
|   88         layoutObject().updateHitTestResult(result, locationInContainer.point() -
      toLayoutSize(adjustedLocation)); |   88         layoutObject().updateHitTestResult(result, locationInContainer.point() -
      toLayoutSize(adjustedLocation)); | 
|   89         // FIXME: the call to rawValue() below is temporary and should be remove
     d once the transition |   89         // FIXME: the call to rawValue() below is temporary and should be remove
     d once the transition | 
|   90         // to LayoutUnit-based types is complete (crbug.com/321237) |   90         // to LayoutUnit-based types is complete (crbug.com/321237) | 
|   91         if (!result.addNodeToListBasedTestResult(layoutObject().node(), request,
      locationInContainer, boundsRect.rawValue())) |   91         if (!result.addNodeToListBasedTestResult(layoutObject().node(), location
     InContainer, boundsRect.rawValue())) | 
|   92             return true; |   92             return true; | 
|   93     } |   93     } | 
|   94  |   94  | 
|   95     return false; |   95     return false; | 
|   96 } |   96 } | 
|   97  |   97  | 
|   98 const char* EllipsisBox::boxName() const |   98 const char* EllipsisBox::boxName() const | 
|   99 { |   99 { | 
|  100     return "EllipsisBox"; |  100     return "EllipsisBox"; | 
|  101 } |  101 } | 
|  102  |  102  | 
|  103 } // namespace blink |  103 } // namespace blink | 
| OLD | NEW |