Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * (C) 1999 Lars Knoll (knoll@kde.org) | 2 * (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 2000 Dirk Mueller (mueller@kde.org) | 3 * (C) 2000 Dirk Mueller (mueller@kde.org) |
| 4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
| 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) | 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) |
| 6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) | 6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 1939 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1950 LayoutRect logicalVisualOverflow = curr->logicalOverflowRect(); | 1950 LayoutRect logicalVisualOverflow = curr->logicalOverflowRect(); |
| 1951 logicalLeftSide = std::min(logicalLeftSide, logicalVisualOverflow.x()); | 1951 logicalLeftSide = std::min(logicalLeftSide, logicalVisualOverflow.x()); |
| 1952 logicalRightSide = std::max(logicalRightSide, logicalVisualOverflow.maxX()); | 1952 logicalRightSide = std::max(logicalRightSide, logicalVisualOverflow.maxX()); |
| 1953 } | 1953 } |
| 1954 | 1954 |
| 1955 LayoutUnit logicalTop = firstTextBox()->logicalTopVisualOverflow(); | 1955 LayoutUnit logicalTop = firstTextBox()->logicalTopVisualOverflow(); |
| 1956 LayoutUnit logicalWidth = logicalRightSide - logicalLeftSide; | 1956 LayoutUnit logicalWidth = logicalRightSide - logicalLeftSide; |
| 1957 LayoutUnit logicalHeight = | 1957 LayoutUnit logicalHeight = |
| 1958 lastTextBox()->logicalBottomVisualOverflow() - logicalTop; | 1958 lastTextBox()->logicalBottomVisualOverflow() - logicalTop; |
| 1959 | 1959 |
| 1960 // Inflate visual overflow if we have adjusted ascent/descent causing the | |
|
eae
2017/04/07 17:41:57
This is better, thank you. I'm still not convinced
Xianzhu
2017/04/07 18:02:52
What do you think about my previous comment:
https
| |
| 1961 // painted glyphs to overflow the layout geometries based on the adjusted | |
| 1962 // ascent/descent. | |
| 1963 auto inflationForAscent = styleRef(firstTextBox()->isFirstLineStyle()) | |
| 1964 .font() | |
| 1965 .primaryFont() | |
|
eae
2017/04/07 17:41:57
primaryFont may be null.
Xianzhu
2017/04/07 18:02:53
Done.
Should we have DCHECK(primaryFont) here? I
| |
| 1966 ->getFontMetrics() | |
| 1967 .visualOverflowInflationForAscent(); | |
| 1968 auto inflationForDescent = styleRef(lastTextBox()->isFirstLineStyle()) | |
| 1969 .font() | |
| 1970 .primaryFont() | |
| 1971 ->getFontMetrics() | |
| 1972 .visualOverflowInflationForDescent(); | |
| 1973 logicalTop -= inflationForAscent; | |
| 1974 logicalHeight += inflationForAscent + inflationForDescent; | |
| 1975 | |
| 1960 LayoutRect rect(logicalLeftSide, logicalTop, logicalWidth, logicalHeight); | 1976 LayoutRect rect(logicalLeftSide, logicalTop, logicalWidth, logicalHeight); |
| 1961 if (!style()->isHorizontalWritingMode()) | 1977 if (!style()->isHorizontalWritingMode()) |
| 1962 rect = rect.transposedRect(); | 1978 rect = rect.transposedRect(); |
| 1963 return rect; | 1979 return rect; |
| 1964 } | 1980 } |
| 1965 | 1981 |
| 1966 LayoutRect LayoutText::localVisualRect() const { | 1982 LayoutRect LayoutText::localVisualRect() const { |
| 1967 if (style()->visibility() != EVisibility::kVisible) | 1983 if (style()->visibility() != EVisibility::kVisible) |
| 1968 return LayoutRect(); | 1984 return LayoutRect(); |
| 1969 | 1985 |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2092 LayoutRect rect = LayoutRect( | 2108 LayoutRect rect = LayoutRect( |
| 2093 IntRect(firstRunX(), firstRunY(), linesBox.width(), linesBox.height())); | 2109 IntRect(firstRunX(), firstRunY(), linesBox.width(), linesBox.height())); |
| 2094 LayoutBlock* block = containingBlock(); | 2110 LayoutBlock* block = containingBlock(); |
| 2095 if (block && hasTextBoxes()) | 2111 if (block && hasTextBoxes()) |
| 2096 block->adjustChildDebugRect(rect); | 2112 block->adjustChildDebugRect(rect); |
| 2097 | 2113 |
| 2098 return rect; | 2114 return rect; |
| 2099 } | 2115 } |
| 2100 | 2116 |
| 2101 } // namespace blink | 2117 } // namespace blink |
| OLD | NEW |