OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ight reserved. | 3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ight reserved. |
4 * Copyright (C) 2010 Google Inc. All rights reserved. | 4 * Copyright (C) 2010 Google Inc. All rights reserved. |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
(...skipping 2047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2058 LayoutUnit totalLogicalWidth; | 2058 LayoutUnit totalLogicalWidth; |
2059 LayoutUnit logicalLeft = logicalLeftOffsetForLine(logicalHeight(), false); | 2059 LayoutUnit logicalLeft = logicalLeftOffsetForLine(logicalHeight(), false); |
2060 LayoutUnit availableLogicalWidth = logicalRightOffsetForLine(logicalHeight()
, false) - logicalLeft; | 2060 LayoutUnit availableLogicalWidth = logicalRightOffsetForLine(logicalHeight()
, false) - logicalLeft; |
2061 updateLogicalWidthForAlignment(textAlign, 0, 0, logicalLeft, totalLogicalWid
th, availableLogicalWidth, 0); | 2061 updateLogicalWidthForAlignment(textAlign, 0, 0, logicalLeft, totalLogicalWid
th, availableLogicalWidth, 0); |
2062 | 2062 |
2063 if (!style()->isLeftToRightDirection()) | 2063 if (!style()->isLeftToRightDirection()) |
2064 return logicalWidth() - logicalLeft; | 2064 return logicalWidth() - logicalLeft; |
2065 return logicalLeft; | 2065 return logicalLeft; |
2066 } | 2066 } |
2067 | 2067 |
| 2068 static void invalidteDisplayItemClientsOfInlineBoxRecursively(InlineBox& box) |
| 2069 { |
| 2070 box.layoutObject().invalidateDisplayItemClient(box); |
| 2071 if (!box.isInlineFlowBox()) |
| 2072 return; |
| 2073 for (InlineBox* child = toInlineFlowBox(box).firstChild(); child; child = ch
ild->nextOnLine()) |
| 2074 invalidteDisplayItemClientsOfInlineBoxRecursively(*child); |
2068 } | 2075 } |
| 2076 |
| 2077 void LayoutBlockFlow::invalidateDisplayItemClientsOfFirstLine() |
| 2078 { |
| 2079 if (childrenInline()) { |
| 2080 // This block has the first line. |
| 2081 if (RootInlineBox* firstRootBox = this->firstRootBox()) |
| 2082 invalidteDisplayItemClientsOfInlineBoxRecursively(*firstRootBox); |
| 2083 return; |
| 2084 } |
| 2085 |
| 2086 // Let the first child flow find the first line. |
| 2087 LayoutObject* child = firstChild(); |
| 2088 while (child && child->isFloatingOrOutOfFlowPositioned()) |
| 2089 child = child->nextSibling(); |
| 2090 if (child && child->isLayoutBlockFlow()) |
| 2091 toLayoutBlockFlow(child)->invalidateDisplayItemClientsOfFirstLine(); |
| 2092 } |
| 2093 |
| 2094 } |
OLD | NEW |