| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights
reserved. |
| 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 1022 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1033 } | 1033 } |
| 1034 | 1034 |
| 1035 // Now check ourselves. Pixel snap hit testing. | 1035 // Now check ourselves. Pixel snap hit testing. |
| 1036 LayoutRect frameRect = roundedFrameRect(); | 1036 LayoutRect frameRect = roundedFrameRect(); |
| 1037 LayoutUnit minX = frameRect.x(); | 1037 LayoutUnit minX = frameRect.x(); |
| 1038 LayoutUnit minY = frameRect.y(); | 1038 LayoutUnit minY = frameRect.y(); |
| 1039 LayoutUnit width = frameRect.width(); | 1039 LayoutUnit width = frameRect.width(); |
| 1040 LayoutUnit height = frameRect.height(); | 1040 LayoutUnit height = frameRect.height(); |
| 1041 | 1041 |
| 1042 // Constrain our hit testing to the line top and bottom if necessary. | 1042 // Constrain our hit testing to the line top and bottom if necessary. |
| 1043 bool noQuirksMode = renderer()->document()->inNoQuirksMode(); | 1043 bool noQuirksMode = renderer()->document().inNoQuirksMode(); |
| 1044 if (!noQuirksMode && !hasTextChildren() && !(descendantsHaveSameLineHeightAn
dBaseline() && hasTextDescendants())) { | 1044 if (!noQuirksMode && !hasTextChildren() && !(descendantsHaveSameLineHeightAn
dBaseline() && hasTextDescendants())) { |
| 1045 RootInlineBox* rootBox = root(); | 1045 RootInlineBox* rootBox = root(); |
| 1046 LayoutUnit& top = isHorizontal() ? minY : minX; | 1046 LayoutUnit& top = isHorizontal() ? minY : minX; |
| 1047 LayoutUnit& logicalHeight = isHorizontal() ? height : width; | 1047 LayoutUnit& logicalHeight = isHorizontal() ? height : width; |
| 1048 LayoutUnit bottom = min(rootBox->lineBottom(), top + logicalHeight); | 1048 LayoutUnit bottom = min(rootBox->lineBottom(), top + logicalHeight); |
| 1049 top = max(rootBox->lineTop(), top); | 1049 top = max(rootBox->lineTop(), top); |
| 1050 logicalHeight = bottom - top; | 1050 logicalHeight = bottom - top; |
| 1051 } | 1051 } |
| 1052 | 1052 |
| 1053 // Move x/y to our coordinates. | 1053 // Move x/y to our coordinates. |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1201 boxModelObject()->paintBoxShadow(info, paintRect, s, shadowStyle); | 1201 boxModelObject()->paintBoxShadow(info, paintRect, s, shadowStyle); |
| 1202 else { | 1202 else { |
| 1203 // FIXME: We can do better here in the multi-line case. We want to push
a clip so that the shadow doesn't | 1203 // FIXME: We can do better here in the multi-line case. We want to push
a clip so that the shadow doesn't |
| 1204 // protrude incorrectly at the edges, and we want to possibly include sh
adows cast from the previous/following lines | 1204 // protrude incorrectly at the edges, and we want to possibly include sh
adows cast from the previous/following lines |
| 1205 boxModelObject()->paintBoxShadow(info, paintRect, s, shadowStyle, includ
eLogicalLeftEdge(), includeLogicalRightEdge()); | 1205 boxModelObject()->paintBoxShadow(info, paintRect, s, shadowStyle, includ
eLogicalLeftEdge(), includeLogicalRightEdge()); |
| 1206 } | 1206 } |
| 1207 } | 1207 } |
| 1208 | 1208 |
| 1209 void InlineFlowBox::constrainToLineTopAndBottomIfNeeded(LayoutRect& rect) const | 1209 void InlineFlowBox::constrainToLineTopAndBottomIfNeeded(LayoutRect& rect) const |
| 1210 { | 1210 { |
| 1211 bool noQuirksMode = renderer()->document()->inNoQuirksMode(); | 1211 bool noQuirksMode = renderer()->document().inNoQuirksMode(); |
| 1212 if (!noQuirksMode && !hasTextChildren() && !(descendantsHaveSameLineHeightAn
dBaseline() && hasTextDescendants())) { | 1212 if (!noQuirksMode && !hasTextChildren() && !(descendantsHaveSameLineHeightAn
dBaseline() && hasTextDescendants())) { |
| 1213 const RootInlineBox* rootBox = root(); | 1213 const RootInlineBox* rootBox = root(); |
| 1214 LayoutUnit logicalTop = isHorizontal() ? rect.y() : rect.x(); | 1214 LayoutUnit logicalTop = isHorizontal() ? rect.y() : rect.x(); |
| 1215 LayoutUnit logicalHeight = isHorizontal() ? rect.height() : rect.width()
; | 1215 LayoutUnit logicalHeight = isHorizontal() ? rect.height() : rect.width()
; |
| 1216 LayoutUnit bottom = min(rootBox->lineBottom(), logicalTop + logicalHeigh
t); | 1216 LayoutUnit bottom = min(rootBox->lineBottom(), logicalTop + logicalHeigh
t); |
| 1217 logicalTop = max(rootBox->lineTop(), logicalTop); | 1217 logicalTop = max(rootBox->lineTop(), logicalTop); |
| 1218 logicalHeight = bottom - logicalTop; | 1218 logicalHeight = bottom - logicalTop; |
| 1219 if (isHorizontal()) { | 1219 if (isHorizontal()) { |
| 1220 rect.setY(logicalTop); | 1220 rect.setY(logicalTop); |
| 1221 rect.setHeight(logicalHeight); | 1221 rect.setHeight(logicalHeight); |
| (...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1636 ASSERT(child->prevOnLine() == prev); | 1636 ASSERT(child->prevOnLine() == prev); |
| 1637 prev = child; | 1637 prev = child; |
| 1638 } | 1638 } |
| 1639 ASSERT(prev == m_lastChild); | 1639 ASSERT(prev == m_lastChild); |
| 1640 #endif | 1640 #endif |
| 1641 } | 1641 } |
| 1642 | 1642 |
| 1643 #endif | 1643 #endif |
| 1644 | 1644 |
| 1645 } // namespace WebCore | 1645 } // namespace WebCore |
| OLD | NEW |